Ich habe folgendes Problem:mysql langsame Abfrage Ausgabe
Es gibt 2 MySQL-Datenbanken Database_1, die das Original und Database_2 ist, die auf der ersten Datenbank mit nur wenigen Änderungen (einige neue Spalten, verschiedene Daten) basiert .
Wenn ich eine Abfrage ausführen, die 3 Tabellen aus Datenbank enthält, erhalte ich sehr unterschiedliche Leistungsergebnisse. Ich habe beide Datenbanken auf demselben Localhost-Server getestet.
Abfrage:
SELECT `Applicant`.`id`, `Applicant`.`name`, `User`.`login`, `User`.`id`, Project.id
FROM `applicants` AS `Applicant`
LEFT JOIN `authake_users` AS `User` ON (`Applicant`.`authake_user_id` = `User`.`id`)
LEFT JOIN `projects` AS `Project` ON (`Project`.`applicant_id` = `Applicant`.`id`)
WHERE `User`.`login` LIKE _latin1 '%1000%' AND `Project`.`id` IS NULL;
Abfrageausführungszeit:
Database_1 - 0,3 s - diese Datenbank ist die größere obwohl es ist schneller
Database_2 - 1 min 40 s
Alle 3 Tabellen benutzen MyISAM Engine. Tabellen Bewerber und Projekte haben charset utf8, Tabelle authake_users hat charset latin1.
Ich habe die Indizes überprüft (beide Datenbanken haben genau die gleichen Indizes), baute sie um und benutzte ANALYZE und OPTIMIZE auf allen 3 Tabellen ohne Erfolg.
Der einzige Unterschied ich gefunden habe, ist unten zeigen, wenn ich die Abfrage ausführen mit dem Befehl vor ERKLÄREN:
Hat jemand eine Ahnung, was zu suchen? Was kann einen solchen Unterschied in der Leistung verursachen?
Überprüfen Sie Indizes, möglicherweise aufgrund der Anzahl der Datensätze Unterschied. –
Haben Sie die Möglichkeit, meine Antwort unten zu überprüfen? Bitte probiere es aus und aktualisiere es. –