Mysql
 sql >> база данни >  >> RDS >> Mysql

MySQL индекс за MIN и MAX

SELECT MIN(b), MAX(b) FROM tbl WHERE a = 12;

обича

INDEX(a, b)

и двете колони в този ред.

Заявката търси в индекса a = 12 , грабва първия (a,b) двойка, за да получите MIN(b) и грабва последната двойка, за да получи MAX(b) .

Изявлението за "замяна с константа" е объркващо, защото навлиза твърде дълбоко в подробностите за това как първо измисля как да изпълни заявката (което се случва, за да получи минимума и максимума), след което пристъпва към изпълнение на това, което е останало от заявката (не е останало нищо).

По-общо казано, оптималният индекс е обикновено такъв, който започва с всички WHERE колони в сравнение с константи с = . След това става сложно, така че позволете ми да дам още един съвет:

„Покриващ“ индекс е този, който има всички колони, споменати в SELECT (a и b в моя пример).

Съжалявам, изглежда не съм по-ясен от ръководството.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL:изберете първия елемент от разделен със запетая списък

  2. Каква е разликата между tinyint, smallint, mediumint, bigint и int в MySQL?

  3. Въведение във високата достъпност на базата данни за MySQL и MariaDB

  4. Възможно ли е да се конкатенират низове от множество редове и таблици в една колона с резултати?

  5. Използване на OpenVPN за защитен достъп до вашия клъстер от база данни в облака