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

Existuje způsob, jak se vyhnout řazení souborů, když se pořadí podle liší od klauzule where?

Všimněte si, že termín MySQL filesort nutně neznamená, že zapisuje na disk. Znamená to pouze, že se bude třídit bez použití indexu. Pokud je výsledná sada dostatečně malá, MySQL ji seřadí v paměti, což je řádově rychlejší než diskový I/O.

Množství paměti, kterou MySQL alokuje pro třídění souborů v paměti, můžete zvýšit pomocí sort_buffer_size serverová proměnná. V MySQL 5.1 je výchozí velikost vyrovnávací paměti pro řazení 2 MB a maximum, které můžete přidělit, jsou 4 GB.

aktualizace: Pokud jde o komentář Jonathana Lefflera o měření, jak dlouho trvá třídění, můžete se naučit, jak používat SHOW PROFILE FOR QUERY který vám poskytne rozpis toho, jak dlouho trvá každá fáze provádění dotazu.



  1. Pochopení toho, co sp_updatestats skutečně aktualizuje

  2. Zmatek ohledně UPDLOCK, HOLDLOCK

  3. Vkládání záznamů do tabulky MySQL pomocí Javy

  4. SQLite Kromě