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

MySQLの複数のインデックスと検索用の複数列のインデックス

    MySQL(InnoDBの場合)では、インデックスの左端のプレフィックスのみが使用されることを理解する必要があります。したがって、インデックスがField1 + Field2にある場合、 WHEREのField2のみでクエリを実行します。 インデックス全体を利用することはできません。

    そして、Field1 + Field2 + Field3の場合 はインデックスであり、Field1 & Field3のみを含むクエリです。 場所 同じことが起こります。

    オプション1

    各検索を最適化する場合は、検索シナリオごとに個別のインデックスを作成する必要があります。ただし、テーブルが大きい場合、インデックスも非常に大きくなります。 これらの検索クエリが頻繁に行われる場合、これは価値があります。

    オプション2

    検索の選択性が低い場合は、気の利いたトリックを使用できます。 (つまり、性別)選択性の低い列を一番左に配置し、Gender IN(M, F)を使用します 場所に含める インデックス全体を利用するために、他の列と一緒に句を使用します。



    1. MySQLでストアドプロシージャをバックアップする方法

    2. mysql:テーブルBに存在しない場合は、テーブルAからすべてのアイテムを選択します

    3. Postgresを使用して複数のスキーマからすべてのレコードを選択(取得)します

    4. カテゴリツリーを返すMysqlクエリ