Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Hiểu nhiều chỉ mục cột trong truy vấn MySQL

Câu hỏi hay.

Các chỉ mục hoạt động từ trái sang phải, vì vậy WHERE của bạn tiêu chí sẽ sử dụng chỉ mục. Việc sắp xếp cũng sẽ sử dụng chỉ mục trong trường hợp này (kế hoạch thực thi bên dưới).

Từ hướng dẫn sử dụng :

Nếu bạn có một chỉ mục cột đơn (accountid ), một tổ hợp tệp sẽ được sử dụng thay thế. Do đó, truy vấn của bạn sẽ được hưởng lợi từ chỉ mục đó.

Chỉ mục hai cột

create table t1 (
  accountid tinyint,
  logindate date);

create index idx on t1 (accountid, logindate);

insert into t1 values (1, '2012-09-05'), (2, '2012-09-09'), (3, '2012-09-04'), 
    (1, '2012-09-01'), (1, '2012-09-26'), (2, '2012-05-16'), 
    (1, '2012-09-01'), (3, '2012-10-19'), (1, '2012-03-01')

Kế hoạch thực thi

ID  SELECT_TYPE  TABLE  TYPE  POSSIBLE_KEYS  KEY  KEY_LEN  REF   ROWS  FILTERED  EXTRA
1   SIMPLE       t1     ref   idx            idx  2        const 5     100       Using where; Using index

Chỉ mục một cột

create table t1 (
  accountid tinyint,
  logindate date);

create index idx on t1 (accountid);

insert into t1 values (1, '2012-09-05'), (2, '2012-09-09'), (3, '2012-09-04'), 
    (1, '2012-09-01'), (1, '2012-09-26'), (2, '2012-05-16'), (1, '2012-09-01'), 
    (3, '2012-10-19'), (1, '2012-03-01')

Kế hoạch thực thi

ID  SELECT_TYPE  TABLE  TYPE   POSSIBLE_KEYS  KEY  KEY_LEN  REF   ROWS  FILTERED  EXTRA
1   SIMPLE       t1     range  idx            idx  2              5     100       Using where; Using filesort



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Trả lại một đốm màu với json

  2. phương pháp hay nhất về sql của tôi với php để đếm hàng

  3. Mã PHP để chuyển đổi một truy vấn MySQL thành CSV

  4. Ràng buộc khóa ngoại không thành công

  5. Định dạng số thành số viết tắt