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

MySQL:Hvorfor kører et Order By ID meget langsommere end Order By andre kolonner?

Fra MySQL-dokumentation på http://dev.mysql .com/doc/refman/5.6/da/order-by-optimization.html

I nogle tilfælde kan MySQL ikke bruge indekser til at løse ORDER BY , selvom den stadig bruger indekser til at finde de rækker, der matcher WHERE klausul. Disse tilfælde omfatter følgende:

. . .

Nøglen, der bruges til at hente rækkerne, er ikke den samme som den, der bruges i ORDER BY :

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

Dette hjælper sandsynligvis ikke, men hvad sker der, hvis du tilføjer AND ID > 0 til WHERE klausul? Vil dette få MySQL til at bruge den primære nøgle til sortering? Det er vel et forsøg værd.

(Det virker mærkeligt, at bestilling med ak er effektivt, da ak ikke engang har et indeks, men det kan skyldes færre værdier for ak?)



  1. Er join insert/update på MySQL en atomoperation?

  2. codeIgniter bruge mysql_real_escape_string() i stedet.databaseforbindelsesproblem

  3. Få forskel i år mellem to datoer i MySQL som et heltal

  4. Benchmarking Postgres-XL