Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Memahami beberapa indeks kolom dalam kueri MySQL

Pertanyaan bagus.

Indeks bekerja dari kiri ke kanan, jadi WHERE your Anda kriteria akan menggunakan indeks. Pengurutan juga akan menggunakan indeks dalam kasus ini (rencana eksekusi di bawah).

Dari manual :

Jika Anda memiliki indeks kolom tunggal (accountid ), sebuah filesort akan digunakan sebagai gantinya. Oleh karena itu, kueri Anda mendapat manfaat dari indeks tersebut.

Indeks Dua Kolom

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')

Rencana Eksekusi

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

Indeks Kolom Tunggal

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')

Rencana Eksekusi

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. MySQL:Pilih semua tanggal antara rentang tanggal dan dapatkan tanggal pencocokan data tabel

  2. Bagaimana cara memperbaiki kesalahan 'Nilai di luar rentang yang disesuaikan untuk kolom'?

  3. MySQL - Operand harus berisi 1 kolom

  4. Apa cara terbaik untuk menghasilkan peringkat di MYSQL?

  5. CI - tampilkan kesalahan atau kegagalan basis data