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

Индекси на база данни с няколко колони и скорост на заявки

не Редът на колоните в индекса е много важен. Да предположим, че имате индекс като този:create unique index index_name on table_name (headline, coupon_code, description,expiration_date) В този случай тези заявки ще използват индекса

select * from table_name where headline = 1
select * from table_name where headline = 1 and cupon_code = 2

и тези заявки няма да използват уникалния индекс:

select * from table_name where coupon_code = 1
select * from table_name where description = 1 and cupon_code = 2

Така че правилото е нещо подобно. Когато имате множество полета, индексирани заедно, тогава трябва да посочите първото k поле, за да можете да използвате индекса.

Така че, ако искате да можете да търсите всеки едно от тези полета, тогава трябва да създадете в индекс на всяко от тях поотделно (освен комбинирания уникален индекс)

Освен това внимавайте с оператора LIKE.

това ще използва индекс SELECT * FROM tbl_name WHERE key_col LIKE 'Patrick%'; и това няма да SELECT * FROM tbl_name WHERE key_col LIKE '%Patrick%';

използване на индекс http://dev.mysql.com/doc /refman/5.0/en/mysql-indexes.html индекс на няколко колони http://dev.mysql. com/doc/refman/5.0/en/multiple-column-indexes.html




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Странно поведение Laravel Homestead Database Connection

  2. Изчислете възрастта въз основа на датата на раждане

  3. Клауза IN, подготвени за PDO изявления с именувани контейнери, не работи според очакванията

  4. Шаблон на хранилище без LINQ или друг ORM?

  5. Дата и време е равна или по-голяма от тази днес в MySQL