sql >> Database >  >> RDS >> Mysql

Is er een manier om een ​​filesort te vermijden wanneer de volgorde van verschilt van de waar-clausule?

Merk op dat de MySQL-term filesort betekent niet noodzakelijk dat het naar de schijf schrijft. Het betekent alleen dat het gaat sorteren zonder een index te gebruiken. Als de resultatenset klein genoeg is, zal MySQL deze in het geheugen sorteren, wat ordes van grootte sneller is dan schijf-I/O.

U kunt de hoeveelheid geheugen die MySQL toewijst voor in-memory bestandssorteringen vergroten met behulp van de sort_buffer_size server variabele. In MySQL 5.1 is de standaardgrootte van de sorteerbuffer 2 MB en het maximum dat u kunt toewijzen is 4 GB.

bijwerken: Wat betreft Jonathan Leffler's opmerking over het meten hoe lang het sorteren duurt, kun je leren hoe je SHOW PROFILE FOR QUERY die u een overzicht geeft van hoe lang elke fase van de uitvoering van de query duurt.



  1. Hoe kopieer ik SQL Azure-database naar mijn lokale ontwikkelserver?

  2. MySql-trigger, update een andere tabel bij invoegen

  3. 4 manieren om de definitie van een opgeslagen procedure te krijgen met Transact-SQL

  4. Hoe haal je waarde uit de URL