sql >> Databasteknik >  >> RDS >> Mysql

MySQL:Varför går ett Order By ID mycket långsammare än Order By andra kolumner?

Från MySQL-dokumentationen på http://dev.mysql .com/doc/refman/5.6/en/order-by-optimization.html

I vissa fall kan MySQL inte använda index för att lösa ORDER BY , även om den fortfarande använder index för att hitta de rader som matchar WHERE klausul. Dessa fall inkluderar följande:

. . .

Nyckeln som används för att hämta raderna är inte densamma som den som används i ORDER BY :

`SELECT * FROM t1 WHERE key2=constant ORDER BY key1;`

Detta kommer förmodligen inte att hjälpa, men vad händer om du lägger till AND ID > 0 till WHERE klausul? Skulle detta få MySQL att använda primärnyckeln för sortering? Värt ett försök antar jag.

(Det verkar konstigt att beställning med ak är effektivt, eftersom ak inte ens har ett index, men det kan bero på färre värden för ak?)



  1. infoga hastighet i mysql vs cassandra

  2. Hitta N närmaste linjesträng från en punkt med MySQL Spatial Extensions

  3. Viloläge Criteria Query för att få specifika kolumner

  4. SYS_EXTRACT_UTC() Funktion i Oracle