sql >> Base de Datos >  >> RDS >> Mysql

Índices de bases de datos de varias columnas y velocidad de consulta

No. El orden de las columnas en el índice es muy importante. Supongamos que tiene un índice como este:create unique index index_name on table_name (headline, coupon_code, description,expiration_date) En este caso estas consultas utilizarán el índice

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

y estas consultas no usarán el índice único:

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

Así que la regla es algo como esto. Cuando tiene varios campos indexados juntos, debe especificar el primer campo k para poder usar el índice.

Entonces, si desea poder buscar cualquiera uno de estos campos, entonces debe crear en el índice en cada uno de ellos por separado (además del índice único combinado)

Además, tenga cuidado con el operador LIKE.

esto utilizará el índice SELECT * FROM tbl_name WHERE key_col LIKE 'Patrick%'; y esto no SELECT * FROM tbl_name WHERE key_col LIKE '%Patrick%';

uso del índice http://dev.mysql.com/doc /refman/5.0/en/mysql-indexes.html índice de varias columnas http://dev.mysql. com/doc/refman/5.0/en/multiple-column-indexes.html