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

mysqlバイナリ比較はインデックスを使用しません

    MySQLは、インデックスに列の照合を使用します。非バイナリ照合のインデックスは、順序が異なる可能性があるため、バイナリルックアップには役立ちません。

    列自体をバイナリ照合に変更できます:

    ALTER TABLE YourTable MODIFY
       YourColumn VARCHAR(4)
       CHARACTER SET latin1
       COLLATE latin1_bin;
    

    そうすれば、インデックスはバイナリルックアップに役立ちます。



    1. OracleでのページングのためのLIMITおよびOFFSETの代替

    2. MySQL列をNOTNULLに設定しましたが、それでも空の値を挿入できます

    3. SQLServer2005のINSERTWHERECOUNT(*)=0でのUNIQUEKEY制約への違反

    4. Mysql可変パフォーマンスの増加