sql >> Databáze >  >> RDS >> Mysql

porozumění mysql vysvětlit

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;

Tyto jsou doslovně zkopírovány z manuálu MySQL:http:// dev.mysql.com/doc/refman/5.0/en/using-explain.html

Pokud byste mohli zveřejnit svůj dotaz, který trvá věčně , mohl bych pomoci určit, co to zpomaluje. Také prosím uveďte, jaká je vaše definice navždy je. Také, pokud byste mohli poskytnout svůj "SHOW CREATE TABLE xxx;" příkazy pro tyto tabulky, mohl bych vám pomoci co nejvíce optimalizovat váš dotaz.

Co mi okamžitě vyskočí jako možný bod zlepšení, je „Using dočasné; Používání řazení souborů;“. To znamená, že pro splnění dotazu byla vytvořena dočasná tabulka (ne nutně špatná věc) a že vámi označenou GROUP BY/ORDER BY nebylo možné načíst z indexu, což má za následek třídění souborů .



  1. Ukládání velmi velkých celých čísel v MySQL

  2. pomocí hodnot oddělených čárkami uvnitř klauzule IN pro sloupec NUMBER

  3. Pochopení uzamčení SQL Serveru na zabezpečené databázové prostředí

  4. Jak VLOŽIT, pokud řádek neexistuje (UPSERT) v MySQL