sql >> Databasteknik >  >> RDS >> Mysql

Varför kan ett index göra en fråga väldigt långsam?

Eftersom du fortfarande behöver läsa all data från både index + datafil. Eftersom du inte använder någon where skick - du kommer alltid att ha frågeplanen som kommer åt alla data, rad för rad och du kan inte göra något med detta.

Om prestandan är viktig för den här frågan och den utförs ofta - skulle jag föreslå att du cachelagrar resultaten i någon tillfällig tabell och uppdaterar den varje timme (dagligen, etc).

Varför det blir långsammare:eftersom data redan är sorterade i index och när mysql beräknar kostnaden för exekveringen av frågan tror den att det är bättre att använda redan sorterade data, sedan gruppera dem och sedan beräkna agregat. Men det är det inte i det här fallet.



  1. MAX() Funktion i PostgreSQL

  2. Hur man hämtar flera rader från databasen i PHP

  3. Användarinloggning med en enda fråga och lösenord per användare

  4. Hur man returnerar dagnumret med ett suffix i MariaDB