私は450,000レコードのユーザーテーブルを持っています。テーブル構造はほどです:Mysqlサブクエリの最適化
UserID Int(11) Primary Key
Firstname (50) Varchar
Lastname (50) Varchar
私はまた、ユーザーIDは、これらの表にあるかどうかを確認するために他の二つのテーブルをチェックする必要があります。 (構造は少し異なりますが、テーブルのUserIDは同じです) 私はこのサブクエリを以下で実行していますが、非常に遅いです。より高速なビットを実行助けるために新鮮な視点を提供するために、目の第2のセットを感謝...
SELECT
`Users`.`Firstname`,
`Users`.`Lastname`,
`Users`.`UserID`
FROM `Users`
WHERE `Users`.`UserID` IN (SELECT `admin`.`UserID` FROM `admin` WHERE `admin`.`UserID`=`User`.`UserID`)
AND `Users`.`UserID` IN (SELECT `elite`.`UserID` FROM `elite` WHERE `elite`.`UserID`=`Users`.`UserID`)
AND `Users`.`Lastname` LIKE '%smith%'
テーブルにはどのようなインデックスがありますか?それぞれのテーブルに対して 'SHOW CREATE TABLE ...'を投稿し、 'EXPLAIN SELECT ... '出力を投稿してください。 –