sql >> データベース >  >> RDS >> Mysql

MINおよびMAXのMySQLインデックス

    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 私の例では)。

    申し訳ありませんが、マニュアルよりも明確ではないようです。



    1. 米国の郵便番号の境界座標を取得するにはどうすればよいですか?

    2. PHPのIN句を使用したクエリでプリペアドステートメントを使用する方法

    3. 行が存在するかどうかを確認してください、Laravel

    4. 中間テーブルを使用してpostgresテーブルを分割する方法