sql >> Database teknologi >  >> RDS >> Mysql

forståelse mysql forklare

Paul:

SELECT * FROM ref_table,other_table
WHERE ref_table.key_column=other_table.column;

SELECT * FROM ref_table,other_table
WHERE ref_table.key_column_part1=other_table.column
AND ref_table.key_column_part2=1;
SELECT * FROM ref_table WHERE key_column=expr;

SELECT * FROM ref_table,other_table
WHERE ref_table.key_column=other_table.column;

SELECT * FROM ref_table,other_table
WHERE ref_table.key_column_part1=other_table.column
AND ref_table.key_column_part2=1;

Disse er kopieret ordret fra MySQL-manualen:http:// dev.mysql.com/doc/refman/5.0/en/using-explain.html

Hvis du kunne sende din forespørgsel, tager det for evigt , jeg kunne hjælpe med at finde ud af, hvad der bremser det. Angiv også, hvad din definition af for evigt er. Også, hvis du kunne give din "VIS OPRET TABEL xxx;" udsagn til disse tabeller, kunne jeg hjælpe med at optimere din forespørgsel så meget som muligt.

Det, der umiddelbart springer ud af mig som et muligt forbedringspunkt, er "Using temporary; Using filesort;". Dette betyder, at en midlertidig tabel blev oprettet for at tilfredsstille forespørgslen (ikke nødvendigvis en dårlig ting), og at den GROUP BY/ORDER BY, du har udpeget, ikke kunne hentes fra et indeks, hvilket resulterede i en filsort .



  1. Migrering fra AnswerHub til WordPress:A Tale of 10 Technologies

  2. Spørgsmål at stille, før du starter en database

  3. MySQL - Adjacency List Model - Få dybde

  4. SQL WHERE betingelse er ikke lig med?