2000以上のIDが言うように、)私はmysqlクエリを最適化するには "in"オペランドが含まれていますか?
select * from logs where uid in (id1, id2, ...)
のようなクエリを持っていますが、中のリスト(中には非常に多くのIDがあります場合、私はパフォーマンスの心配は、さえ説明の出力に従って、この文はインデックスを使用しませんon uidカラム。 この種の条件で他の方法でクエリを実行する方法や、このSQL文の最適化を行う方法があるかどうかを知りたいですか?
いずれの回答もありがとうございます。
補足:表形式はmyisamです。何らかの理由でストレージエンジンを変更できません。
これに問題がありますか? –
()内のIDが特定の条件の別のテーブルから来た場合は、joinを使用できます。 uidが任意のユーザー入力から来た場合、私はあなたがそれについて多くを行うことはできないと思います。 –
@andreasはい、idsは別のデータソースから来ています。それらを「uid = id1またはuid = id2 or ....」に分けておけば助けになりますか? – hago