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 スタイルをプログラムで処理するためのサンプル コード
Linux 仮想マシン: VMware + Ubuntu 16.04.4 Windows ネイティブ...
HTML に画像を挿入するには、画像を表示するための HTML タグが必要です。これは、img タ...
1. 事例会社のトップ以外の従業員全員を年齢別にグループ化します。 t_emp で id が存在しな...
1. 公式5.0.3イメージを取得する [root@localhost ~]# docker pul...
目次序文SessionStorage と LocalStorage の紹介SessionStorag...
JavaScript の DOM イベント モデルでは、オブジェクトの addEventListen...
コードをコピーコードは次のとおりです。 <div contenteditable="...
Nginx の書き換え機能は、リダイレクトと同様に、URL アドレスを一時的または永続的に新しい場所...
Nginxのproxy_cacheを使用してキャッシュサーバーを構築する1: ngx_cache_...
まず、全体的な考え方についてお話しします。 1. パスワードを使用してCentOSシステムにログイン...
目次条件付きコンパイルページレイアウト要約する条件付きコンパイル条件付きコンパイルでは、特別なコメン...
Apache.POI の HSSFWorkbook を使用して Excel にエクスポートします。具...
理由: MySQL 5.7.5 以降では機能依存関係の検出が実装されています。 only_full_...
1. 理由新しいシステムに MySQL を再インストールする必要があったので、将来詳細を忘れた場合...
404 を避けるべきだとどうして言えるのでしょうか? その理由は、ほとんどの 404 ページが粗雑す...