序文 通常、大量のデータを扱う MySQL クエリには「ページング」戦略が採用されます。ただし、ページを後の位置に移動すると、MySQL は破棄する必要のあるデータをスキャンするのに多くの時間を費やすため、クエリは非常に遅くなります。 基本的なページングテクニック 通常、効率的なページングを実現するには、クエリ内の WHERE 条件列とソート列に結合インデックスを適用する必要があります。 1. フィールドの並べ替え 注文する a,b で順序付け a、b、c で順序付け ORDER BY a DESC、b DESC、c DESC 2. フィルタリングと並べ替え a = const ORDER BY b, c の場合 a = const かつ b = const の場合、c で ORDER BY する a = const ORDER BY b, c の場合 a = const かつ b > const の場合、b, c で ORDER BY する 3. 次のクエリは上記のインデックスを使用できません ORDER BY a ASC, b DESC, c DESC // ソート方向が一貫していません WHERE g = const ORDER BY b, c // フィールド g はインデックスの一部ではありません WHERE a = const ORDER BY c // フィールド b は使用されていません WHERE a = const ORDER BY a, d // フィールド d はインデックスの一部ではありません 大量のデータのページめくりの問題を解決 1. LIMIT M,NのクエリをLIMIT Nに変更します。 例: mysql> SELECT <cols> FROM profiles INNER JOIN ( -> SELECT <主キー列> FROM プロファイル -> WHERE x.sex='M' ORDER BY 評価 LIMIT 100000, 10 -> ) AS x USING(<主キーの列>); 以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
<<: CentOS7 ファイアウォールとオープンポートの簡単な使い方の簡単な紹介
MySQL 5.5 の場合、文字セットが設定されていない場合、MySQL のデフォルトの文字セットは...
序文Docker イメージは Dockerfile といくつかの必要な依存関係で構成され、Docke...
1. カラーマッチング効果のプレビュー下の GIF に示すように、ボタンの背景色が徐々に薄くなると...
1. はじめにVagrant は、仮想マシン (VirtualBox) を構築および管理するためのツ...
1. 需要バックエンドは、フロントエンドがツリー構造(重複データなし)に変換するためのデータを提供し...
1. はじめにレスポンシブ Web デザインにより、Web サイトは複数のデバイスと複数の画面に同時...
1. はじめに数日前、プロジェクトでトラバーサルに使用したときに落とし穴に遭遇し、解決するのに 1 ...
この記事では、アバター変更機能を実装するためのJavaScriptの具体的なコードを参考までに共有し...
1. はじめにこの記事には MySQL インストール部分のスクリーンショットがないので、ある程度の基...
1. Docker コンテナのホスト マシンに入り、指定されたイメージを実行しているコンテナ ID ...
1. パスワードを変更する1. 一般ユーザーのパスワードを変更する パスワード現在のパスワードを入力...
免責事項:プロジェクトでは ROS 環境を使用する必要があるため、これは Ubuntu 20.04 ...
これに先立ち、1日かけてやってみました。Seataは使い方が簡単で超シンプルですが、インストールや設...
Vue コンポーネントをカプセル化する場合でも、機能コンポーネントをクロスファンクショナルに使用しま...
nginx で仮想ホスト vhost を設定すると非常に便利です。 nginx設定ファイルnginx...