SELECT MIN(b), MAX(b) FROM tbl WHERE a = 12;
大好き
INDEX(a, b)
両方の列をこの順序で。
クエリはインデックスでa = 12
を探します 、最初の(a,b)
を取得します MIN(b)
を取得するためのペア 最後のペアを取得してMAX(b)
を取得します 。
「定数に置き換える」という記述は、最初にクエリの実行方法(最小値と最大値を取得する)を理解し、次に残っているものの実行に進む方法の詳細に深く入り込んでいるため、混乱を招きます。クエリ(何も残っていません)。
より一般的には、最適なインデックスは通常です。 すべてのWHERE
で始まるもの =
の定数と比較した列 。その後、複雑になるので、別のヒントを教えてください:
「カバーする」インデックスとは、SELECT
に記載されているすべての列を含むインデックスです。 (a
およびb
私の例では)。
申し訳ありませんが、マニュアルよりも明確ではないようです。