sql >> Database >  >> RDS >> Mysql

mysql begrijpen leg uit

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;

Deze zijn letterlijk overgenomen uit de MySQL-handleiding:http:// dev.mysql.com/doc/refman/5.0/en/using-explain.html

Als u uw vraag zou kunnen posten die eeuwig lang duurt , Ik zou kunnen helpen bepalen wat het vertraagt. Geef ook aan wat uw definitie is van voor altijd is. Ook, als u uw "SHOW CREATE TABLE xxx;" zou kunnen verstrekken verklaringen voor deze tabellen, kan ik u helpen uw zoekopdracht zoveel mogelijk te optimaliseren.

Wat mij direct opvalt als mogelijk verbeterpunt is het "Gebruik tijdelijk; Gebruik filesort;". Dit betekent dat er een tijdelijke tabel is gemaakt om aan de vraag te voldoen (niet per se een slechte zaak), en dat de door u aangewezen GROUP BY/ORDER BY niet kon worden opgehaald uit een index, wat resulteerde in een filesort .



  1. Een SQL-query om een ​​string te selecteren tussen twee bekende strings

  2. Hoe te migreren van MSSQL naar MySQL

  3. Hoe de LTRIM()-functie werkt in MySQL

  4. INNODB inschakelen in mysql