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

複合インデックスはいつ使用する必要がありますか?

    複合インデックスを利用するクエリを使用する場合は、複合インデックスを使用する必要があります。次のような複合インデックス:

    index( column_A, column_B, column_C )
    

    結合、フィルタリング、場合によっては選択にこれらのフィールドを使用するクエリに役立ちます。また、そのコンポジットの列の左端のサブセットを使用するクエリにも役立ちます。したがって、上記のインデックスは、必要なクエリも満たします

    index( column_A, column_B, column_C )
    index( column_A, column_B )
    index( column_A )
    

    ただし、(少なくとも直接ではなく、より適切なインデックスがない場合は部分的に役立つ可能性があります)、必要なクエリには役立ちません

    index( column_A, column_C )
    

    column_Bが欠落していることに注意してください。

    元の例では、2つのディメンションの複合インデックスは、ほとんどの場合、両方のディメンションまたは左端のディメンション自体をクエリするクエリに役立ちますが、右端のディメンション自体は役立ちません。常に2つのディメンションをクエリしている場合は、複合インデックスが最適です。どちらが最初であるかは問題ではありません(おそらく)。



    1. ソケット'/var/lib/mysql/mysql.sock'を介してローカルMySQLサーバーに接続できません(2)

    2. Postgresqlを修正するためにHomebrewのreadlineバージョン6.xに戻りますか?

    3. MySQL CHAR()とT-SQL CHAR():違いは何ですか?

    4. 'MySql.Data.MySqlClient'ADO.NETプロバイダーのEntityFrameworkプロバイダーが見つかりません