0
単一の値の列のペアを検索しようとしているMySQLテーブルがあります。非常に大きなテーブルなので、検索時間をできるだけ短くしたい。私は元にEXPLAIN名とsirname複数の列で単一の値を使用するWHEREの最適化
に理解インデックスと
SELECT * FROM clients WHERE name=? OR sirname=?
VS
SELECT * FROM clients WHERE ? IN (name, sirname)
を容易にするために、以下の表を簡素化している
は、インデックスを使用しますが、ではありませんの後者
これは正確であるか、いくつかの最適化がありますかEXPLAINが捕まえないフードの下で行っていますか?
Checking multiple columns for one valueと強く関連していますが、スレッドの時代のためにそこで議論することはできません。
最初のクエリはインデックスを使用しますが、MySQLは複数のインデックスをうまく処理します。 – KilleR
@KilleR - 'EXPLAIN'を確認してください。 "インデックスマージ"は有用なインデックスの欠如を回避するための_kludgeです。 Billのソリューションは、2つの別々のインデックスをはるかに効率的に使用できます。 –