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

条件間にORがある場合、MySQLはインデックスを使用できますか?

    ORのクエリプラン ケースはMySQLを示しているようです は確かにインデックスを使用しているので、明らかにそうです、少なくともこの場合は可能です。 seenにインデックスがあるので、それは完全に合理的なようです。 、およびid PKです。

    「論理的かつ合理的な説明」が現実と矛盾する場合は、論理に欠陥があるか、説明が間違っているか適用できないと考えるのが安全です。パフォーマンスを予測するのは難しいことで有名です。速度が重要な場合、パフォーマンステストは不可欠です。

    テストするものを使用する必要があります プログラムが実際に使用するものを適切にモデル化する入力でより高速になります。

    ただし、2つのクエリは意味的に同等ではないことにも注意してください。id = 5204の行の場合 seen = 3もあります 次に、OR クエリは1回返しますが、UNION ALL クエリはそれを2回返します。正しいコードと間違ったコードのどちらが正しいかを除いて、どちらかを選択するのは無意味です。



    1. MySQLのコマンドラインを使用してSQLファイルをインポートするにはどうすればよいですか?

    2. フィールドの最初の2文字でSQLを並べ替える

    3. SQL Server 2005のLen()とdatalength()

    4. Oracle:複数のテーブルの更新=> ORA-01779:キーが保持されていないテーブルにマップする列を変更できません