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 スタイルをプログラムで処理するためのサンプル コード
1. ダウンロードApacheの公式サイトhttp://httpd.apache.org/にアクセス...
レンダリング サンプルコード今日は、WeChat アプレットを使用して 2048 ゲームを実装します...
目次1.配列を初期化する2. 配列の合計、最大値、最小値3. エラー値をフィルタリングする4. 論理...
操作前に必ずお読みください:注意:管理に rancher を使用する場合は、k8s クラスターが構築...
SSH は Secure Shell の略で、安全な伝送プロトコルです。Ubuntu クライアントは...
目次Anaconda の紹介1. ダウンロード1.1 インストールパッケージを保存するフォルダを作成...
この記事では、Docker+Jenkins の自動ビルドデプロイメントを紹介し、皆さんと共有します。...
時間差関数 TIMESTAMPDIFF と DATEDIFF の使用SQL ステートメント、特にスト...
テーブルを美しくするために、ヘッダーに異なる境界線の色を設定できます。基本的な構文<TH 境界...
HTML についてどれくらい知っていますか? 現在、基本的な HTML コードを学習している場合は、...
ここ数年、私は自動化とコンピューターを行ったり来たりしてきました。最近は、機械学習に関連するプロジェ...
目次序文1. どのような変数が促進されますか? 2. 可変プロモーションがあるのはなぜですか? (1...
負荷は通常、システム設計時に予測されます。システムがパブリック ネットワークに公開されている場合、悪...
この記事では、Linux 環境で crontab コマンドを使用して、タスクの定期的な実行をスケジュ...
さて、質問させてください。MySQL で列を int(0) に設定すると何が起こりますか?この問題を...