Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Índices de banco de dados de várias colunas e velocidade de consulta


Não. A ordem das colunas no índice é muito importante. Vamos supor que você tenha um índice como este:create unique index index_name on table_name (headline, coupon_code, description,expiration_date) Nesse caso, essas consultas usarão o índice
select * from table_name where headline = 1
select * from table_name where headline = 1 and cupon_code = 2

e essas consultas não usarão o índice exclusivo:
select * from table_name where coupon_code = 1
select * from table_name where description = 1 and cupon_code = 2

Então a regra é algo assim. Quando você tem vários campos indexados juntos, você precisa especificar o primeiro campo k para poder usar o índice.

Então, se você quiser pesquisar qualquer um desses campos, você deve criar no índice em cada um deles separadamente (além do índice único combinado)

Além disso, tenha cuidado com o operador LIKE.

isso usará o índice SELECT * FROM tbl_name WHERE key_col LIKE 'Patrick%'; e isso não SELECT * FROM tbl_name WHERE key_col LIKE '%Patrick%';

uso do índice http://dev.mysql.com/doc /refman/5.0/en/mysql-indexes.html índice de várias colunas http://dev.mysql. com/doc/refman/5.0/en/multiple-column-indexes.html