1. インデックスプッシュダウン最適化の原理まず、MySQL の一般的なアーキテクチャを簡単に見てみましょう。 MySQL サービス層は、SQL 構文の解析、実行プランの生成などを担当し、ストレージ エンジン層を呼び出してデータの保存と取得を実行します。
ICP を使用せずに MySQL クエリを詳しく見てみましょう。
ICP を使用する場合、クエリ プロセスは次のようになります。
2. インデックスプッシュダウンの具体的な実践理論はかなり抽象的なので、実際に実践してみましょう。 ユーザー テーブル ここで要件がある場合:テーブル内の、名前が Zhang で、年齢が 10 歳のすべてのユーザーを取得します。次に、 SQL ステートメントは次のように記述されます。 select * from tuser where name like '张%' and age=10; インデックスの左端一致の原則を理解していれば、このステートメントはインデックス ツリーを検索するときにのみ使用でき、条件を満たす最初のレコードの ID は 1 であることがわかります。 では次のステップは何でしょうか? 1. ICPを使用していない
概略図を見てみましょう。 テーブルを 2 回返す必要があることがわかります。これにより、結合インデックスの他のフィールド 2. ICPを使用する
概略図を見てみましょう。 テーブルが 1 回だけ返されたことがわかります。 さらに、実行プランを確認すると、 +----+-------------+----------+-----------+---------+---------------+------------+-------+-------+-------+---------+------------------------+ | id | select_type | テーブル | パーティション | タイプ | 可能なキー | キー | キー長 | ref | 行 | フィルター済み | 追加 | +----+-------------+----------+-----------+---------+---------------+------------+-------+-------+-------+---------+------------------------+ | 1 | SIMPLE | tuser | NULL | 範囲 | na_index | na_index | 102 | NULL | 2 | 25.00 | インデックス条件を使用 | +----+-------------+----------+-----------+---------+---------------+------------+-------+-------+-------+---------+------------------------+ 3. インデックスプッシュダウンの使用条件
関連するシステムパラメータ: インデックス条件プッシュダウンはデフォルトで有効になっており、システム パラメータ optimizer_switch を使用して有効かどうかを制御できます。 デフォルトのステータスを表示します。 mysql> @@optimizer_switch\G を選択します。 ************************** 1. 行 **************************** @@optimizer_switch: index_merge=on、index_merge_union=on、index_merge_sort_union=on、index_merge_intersection=on、engine_condition_pushdown=on、index_condition_pushdown=on、mrr=on、mrr_cost_based=on、block_nested_loop=on、batched_key_access=off、materialization=on、semijoin=on、loosescan=on、firstmatch=on、duplicateweedout=on、subquery_materialization_cost_based=on、use_index_extensions=on、condition_fanout_filter=on、derived_merge=on セット内の 1 行 (0.00 秒) 状態を切り替える: optimizer_switch="index_condition_pushdown=off" を設定します。 optimizer_switch="index_condition_pushdown=on" を設定します。 これで、数分で MySQL インデックス プッシュダウンを理解する方法に関するこの記事は終了です。MySQL インデックス プッシュダウンに関するより関連性の高いコンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
<<: レスポンシブWebデザイン学習(1) - 画面サイズと使用率の決定
>>: CSS スタイルをプログラムで処理するためのサンプル コード
MySQL 5.7.8 では json フィールドが導入されました。このタイプのフィールドは使用頻度...
cpanel 管理バックエンドを開き、「詳細」オプションの下に「Clock Guardian Job...
SSDストレージを有効にしたMySQLインスタンスの詳細な説明特に OS と MySQL が同じディ...
目次スロットスロットとは何ですか?スロットの内容コンパイルスコープフォールバックコンテンツ名前付きス...
JavaScript スクリプトは HTML 内のどこにでも埋め込むことができますが、いつ呼び出され...
ps: Linux システムで root アカウントのリモート ログインを無効にする方法は次のとおり...
まず、接続プールを使用する理由と、接続プールによってどのような問題が解決できるかを理解する必要があり...
ここでは、HTML ページのサイズを縮小した後に下部にスクロール バーを表示し、スクロール バーをス...
これは多くの人がやったことがあるはずです。ただうずうずして書きたかったので、時間をかけていじってダー...
エンコーディングの理由により、Linux サーバーに中国語のファイルやディレクトリをアップロードまた...
目次1. 仮想DOMとは何ですか? 2. 仮想 DOM が必要な理由3. 仮想DOMはどのようにして...
この記事では、ドロップダウンメニューを表示および非表示にするJavaScriptの具体的なコードを参...
Docker テクノロジの開発により、マイクロサービスの実装にさらに便利な環境が提供されます。Doc...
目次製品要件アイデア問題ライブラリ選択をドラッグコンポーネントを生成する方法コンポーネントを生成する...
MySQL では、IF()、IFNULL()、NULLIF()、および ISNULL() 関数を使用...