インデックスプッシュダウン
インデックスプッシュダウンの最適化と、クエリの場合と同様の条件で、テーブルに数値バックを減らすことができます。
(ユーザー名、年齢)共同インデックスを持ってuser_tableテーブルのために、私たちは今、
そこに時代の初めに「張」の名前を見つける必要性が今未満または10のユーザ情報と等しい場合は、次のように、文は次のとおりです。
select * from user_table where username like '张%' and age > 10
2つの可能な実行文があります。
- バックテーブルクエリにすべてのインデックスの「シート」で始まる名前、および対応するフルラインのデータを満たすために(ユーザ名、年齢)共同インデックスのクエリによると、その後、10個の以下のユーザーデータの年齢を満たすためにスクリーニングしました。
- (ユーザー名、年齢)の共同指数によると、すべてのクエリはインデックスの先頭に「張」の名前を満たし、その後、直接スクリーン再データのフル・テーブル・クエリの行に戻り、その後、10歳以下のインデックスに等しいです。
明らかに、第二の方法は、インデックスのmysql押し下げられているデータクエリのフルラインに戻るにはあまり必要です。MySQLのインデックスのプッシュダウンがデフォルトで有効になって、我々はシステムを変更することで、ロゴをindex_condition_pushdownすることができ、また、可変optimizer_switchコントロール
SETをoptimizer_switch =「index_condition_pushdown =オフ」 。
ある関節インデックステーブルT(A、B)を仮定し、次のステートメントは、効率指数プッシュダウンを改善するために使用することができます。
select * from t where a > 2 and b > 10;
概要
- InnoDBエンジンテーブル、インデックスは、クラスタ化インデックスindexインデックスはさらに、2つ(二次指数)、各2レコード指標値列また、あるに加えて(セカンダリインデックスのみを使用することができるプッシュダウン主キー値クエリインデックスは、2つの第1の主キーが見つかったことで、一次キー/クラスタ化インデックスを検索するためにデータブロックを対応のInnoDBは、主キー値に従って発見される。)を含みます。この時間は、銀行全体のデータのクエリ結果のリスクを低下させない指標を押し下げるので、リーフ子ノードに保存されてInnoDBの主キーのインデックス(クラスタ化インデックス)は、データのフルラインです。
- プッシュダウンクエリフィールドは、(選択列)を尋ねるために使用することができ、一般的な指標の基準やクエリ句を検索し、すべての関節のインデックスフィールドではありません(ここで、/ ORDER BY)フィールド全体は、複数の条件のための共同のインデックスです。