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

MySQL - índice de múltiples columnas

La regla general para los índices es colocar uno en cualquier campo utilizado en un WHERE o JOIN cláusula.

Dicho esto, hay algunas optimizaciones que puedes hacer. Si SABES que cierta combinación de campos es la única que alguna vez se usará en DONDE en una tabla en particular, entonces puede crear una sola clave de múltiples campos solo en esos campos, por ejemplo,

INDEX (field1, field2, field5)

vs.

INDEX (field1),
INDEX (field2),
INDEX (field5)

Un índice de campos múltiples puede ser más eficiente en muchos casos, en lugar de tener que escanear varios índices. La desventaja es que el índice de campos múltiples solo se puede usar si los campos en cuestión se usan realmente en una cláusula WHERE.

Con sus consultas de muestra, desde element y field_id están en los tres índices, es mejor que los divida en su propio índice dedicado. Si estos son campos modificables, entonces es mejor mantener su propio índice dedicado. p.ej. si alguna vez tiene que cambiar field_id a granel, la base de datos tiene que actualizar 3 índices diferentes, v.s. actualizando solo uno dedicado.

Pero todo se reduce a la evaluación comparativa:pruebe su configuración particular con varias configuraciones de índice y vea cuál funciona mejor. Las reglas generales son útiles, pero no funcionan el 100 % del tiempo.