MySQL インデックス最適化ページングの調査テーブル構造 テーブル「デモ」を作成します( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(50) 文字セット utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT '' COMMENT 'Name', `age` int(11) NOT NULL デフォルト '0' コメント '年齢', `position` varchar(50) 文字セット utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT '' COMMENT 'Position', `card_num` varchar(255) 文字セット utf8 COLLATE utf8_general_ci デフォルト NULL コメント '作業カード番号', 主キー (`id`)、 キー `index_union` (`name`,`age`,`position`) ) ENGINE=InnoDB AUTO_INCREMENT=450003 デフォルトCHARSET=utf8; 450003 件のレコード ページング実行ステータスの制限 select * from demo limit 90000,10; のように、テーブルの戻り値を考慮すると、MySQL は単にテーブル全体をスキャンすることを選択します。 MySQL は 90000 行目から直接 10 項目をカウントするのではなく、最初のリーフ ノードからカウントを開始して 90010 行をカウントします。 ケース1上図では、ID が継続的に増加する場合、主キーを使用して id=90000 以降のデータをフィルター処理できます。主キーインデックスは B+ ツリー構造なので順序付けられています。 ケース2まず名前で並べ替え、次に行 90000 から始まる 10 行を検索します。名前はインデックスですが、選択した列は index_union インデックス ツリーに保存されません。 したがって、テーブルに戻る必要があるため、MySQL は主キー インデックス ツリーのリーフ ノードを直接スキャンすることを選択し、最初に 400,000 を超えるデータを名前に従ってソートし、次に 90,000 行 + 10 行を計算します。 最適化方法:最も時間のかかるソートとテーブルを返す問題を解決するためにサブクエリを使用します。ジョイントインデックスツリーは主キーIDを格納します。名前で並べ替えると、左端の列のソートが決定され、他の2つの列、年齢と位置のソートは実際には ソートが完了し、インデックス ツリーは Extra フィールドを介したソートにも使用できます。 最も外側のクエリは主キーによって関連付けられているため、ほとんど無視できます。 10+10 id は主キーなので、一時テーブル内の 10 個のレコードを直接スキャンできます。 これで、MySQL インデックスの最適化とページング探索の詳細な紹介に関するこの記事は終了です。より関連性の高い MySQL ページング探索コンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
<<: Node.js のフロントエンドとバックエンドのインタラクションによるユーザーログインの実装の実践
>>: 純粋な CSS カスタム複数行省略記号の問題 (原理から実装まで)
(I) mysql5.7のインストール: ❀詳細:無料のグリーンバージョン5.7のインストール方法は...
MySQL 5.7.17、現在最新バージョンのようです、ダウンロードアドレスここで、プラットフォーム...
コード例: パブリッククラスJDBCDemo3 { パブリック静的voiddemo3_1(){ bo...
序文MySQL クラスターを構築する場合、当然のことながら、データの一貫性を確保するために、データベ...
DATE_ADD() 関数は、指定された時間間隔を日付に追加します。現在のテーブル内のすべてのデー...
達成される効果:マウスを小さな画像の上に置くと、小さなブロックが小さな画像の上に表示され、この小さな...
目次適用シナリオ:方法 1: 正規表現 (推奨)方法2: 配列のreduceメソッドを使用する方法3...
知識への依存Go クロスコンパイルの基礎Dockerの基礎Dockerfileカスタムイメージの基本...
データURI Data URI は、小さなファイルをドキュメントに直接埋め込むために RFC 239...
序文この記事は主にMySQLの主キー0と主キー自己排除制約の関係を紹介し、皆さんの参考と学習のために...
TS で時間を過ごした場所をいくつか記録します。 (まず、文句を言わせてください。stackover...
この記事では、Dockerでイメージ情報を表示する方法を学ぶ必要があります。 1. imagesコマ...
XML価格照会のクエリデータにはリストが含まれているため、コレクションが必要です <結果マップ...
基本概念デフォルトでは、Compose はアプリケーション用のネットワークを作成し、サービスの各コン...
目次1. バブルソートとは何か2. 例を挙げるラウンド1:第2ラウンド:第3ラウンド:第4ラウンド:...