sql >> Databasteknik >  >> RDS >> Mysql

MySQL använder inte index för ORDER BY

Eftersom den måste ladda hela tabellen för att svara på frågan och att sortera 4 element är billigt, kanske frågeoptimeraren bara undviker att röra vid indexet. Händer det fortfarande med större bord?

Observera att en varchar(3000)-kolumn inte kan vara ett täckande index eftersom MySQL inte kommer att inkludera mer än de första 768 eller så byte av en varchar i ett index.

Om du vill att frågan bara ska läsa indexet, måste indexet ha varje kolumn du är SELECT ing för i den. På innodb bör det börja fungera för din tvåkolumnstabell när du gör textcol tillräckligt liten; på MyISAM måste du själv inkludera primärnyckelkolumnen, som CREATE INDEX textcolindex ON test (textcol,id);



  1. SQL Infoga i tabellen nya rader för varje fält i samma tabell

  2. Unik begränsning med villkor i MYSQL

  3. Returnera en fråga från en funktion?

  4. Uppdatering av Oracle Table från Excel VBA Macro med ODBC-anslutning