sql >> Database teknologi >  >> RDS >> Mysql

Enhver måde at undgå en filsortering, når ordre efter er forskellig fra hvor-klausulen?

Bemærk, at MySQL-udtrykket filesort betyder ikke nødvendigvis, at den skriver til disken. Det betyder bare, at det vil sortere uden at bruge et indeks. Hvis resultatsættet er lille nok, vil MySQL sortere det i hukommelsen, hvilket er størrelsesordener hurtigere end disk I/O.

Du kan øge mængden af ​​hukommelse, MySQL allokerer til filsorteringer i hukommelsen ved hjælp af sort_buffer_size server variabel. I MySQL 5.1 er standardsorteringsbufferstørrelsen 2 MB, og det maksimale du kan tildele er 4 GB.

opdatering: Med hensyn til Jonathan Lefflers kommentar om at måle, hvor lang tid sorteringen tager, kan du lære at bruge SHOW PROFILE FOR QUERY som vil give dig en oversigt over, hvor lang tid hver fase af forespørgselsudførelsen tager.



  1. MySQL/SQL:Opdatering med korreleret underforespørgsel fra selve den opdaterede tabel

  2. Psycopg2, Postgresql, Python:Hurtigste måde at bulk-indsætte

  3. FROM søgeord blev ikke fundet, hvor det forventes (Oracle SQL)

  4. Sådan opdaterer du kolonne med null-værdi