序文 通常、大量のデータを扱う 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 ファイアウォールとオープンポートの簡単な使い方の簡単な紹介
ナビゲーションなどは日々の開発でよく使うので、記録として記事を書きます。ナビゲーションは終了/開始位...
必要なファイルをインストールする Yum インストール openssl-* -yデータベースインデッ...
目次複数の変数を同時に宣言する場合は、1 行に短縮できます。分割代入は複数の変数に同時に値を割り当て...
LINUX では、定期的なタスクは通常、cron デーモン プロセス [ps -ef | grep ...
MySQL における Regexp の一般的な使用法特定の文字列を含むあいまい一致# コンテンツフィ...
質問最近、SSH フレームワークを使用して実用的なプロジェクトを完了していたときに、長い間悩まされて...
Docker に Tomcat をインストールする場合、大きなファイルをダウンロードするときなど、場...
sudo 設定ファイルsudo のデフォルトの設定ファイルは /etc/sudoers です。一般的...
目次1. 共有ロックと排他ロック2. 意図ロック3. レコードロック4. ギャップロック5. ネクス...
1. まず、MySQL の公式サイトから最新バージョンの MySQL をダウンロードします。リンクを...
目次1. 親コンポーネントと子コンポーネント2. テンプレート分離書き込み1. テンプレートタグ2....
私はしばらくの間チャートをいじっていましたが、好奇心から、CSS を使用してチャートを作成するより良...
Yum経由でJenkinsをインストールする1. インストール # yum ソースをインポート wg...
htmlのデフォルトの送信方法は、postではなくgetです。postに変更したい場合は、 meth...
最近、データライフサイクル管理の詳細を整理していたときに、小さな問題を発見しました。それは、MySQ...