Ich habe eine Benutzer-Tabelle mit 450.000 Datensätze. Die Tabellenstruktur ist wie so:Mysql SubQuery Optimierung
UserID Int(11) Primary Key
Firstname (50) Varchar
Lastname (50) Varchar
Ich brauche auch zwei andere Tabelle zu überprüfen, um zu sehen, ob der Benutzer-ID in diesen Tabellen ist. (Die Struktur ist ein bisschen anders, aber die Tabelle haben die gleiche UserID) Ich führe diese Sub-Abfrage unten, und läuft sehr langsam. Schätzen Sie einen zweiten Satz von Augen eine neue Perspektive bieten bis zu helfen, ein bisschen schneller zu laufen ...
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%'
Welche Indizes haben Sie in den Tabellen? Poste 'SHOW CREATE TABLE ...' für jede Tabelle und poste auch 'EXPLAIN SELECT ...'. –