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

MySQL nepoužívá index pro ORDER BY

Vzhledem k tomu, že k zodpovězení dotazu je nutné načíst celou tabulku a řazení 4 prvků je levné, může se optimalizátor dotazů pouze vyhýbat dotyku s indexem. Stává se to stále u větších stolů?

Všimněte si, že sloupec varchar(3000) nemůže být krycím indexem, protože MySQL nezahrnuje více než prvních 768 nebo tak bajtů varchar v indexu.

Pokud chcete, aby dotaz četl pouze index, musí mít index každý sloupec, který jste SELECT ing pro v něm. Na innodb by to mělo začít fungovat pro vaši dvousloupcovou tabulku, jakmile uděláte textcol dostatečně malý; na MyISAM budete muset sami zahrnout sloupec primárního klíče, například CREATE INDEX textcolindex ON test (textcol,id);



  1. Získejte obrázek uložený jako BLOB v databázi MYSQL

  2. Spark Dataframes UPSERT to Postgres Table

  3. Django a paralelní zpracování:

  4. Jak mohu odladit, proč nejjednodušší dotaz MySQL vrací false?