Mysql - Mejora del rendimiento de "ORDER BY" con índice

Mysql - Mejora del rendimiento de "ORDER BY" con índice

¿Puedo mejorar "ORDER BY" agregando un índice en fld_date?

 SELECT * FROM t1 WHERE fld1='XXX' fld2='XXX' ORDER BY fld_date;

La consulta utiliza el índice de (fld1,fld2 - índice combinado) en la cláusula donde. Como ORDER BY no coincide exactamente con el índice, si agrego un índice con fld_date será útil para mejorar el rendimiento de ORDER BY fld_date. ?

Respuesta1

Debe agregar un índice en (fld1, fld2, fld_date). Tenga en cuenta que funcionará solo si fld1 y fld2 están configurados para que coincidan exactamente en WHEREla cláusula, expresiones no exactas como <o >desactivarán el índice para realizar pedidos.

Respuesta2

Mire los índices agrupados, se pueden usar para mejorar el rendimiento en algunos casos con grandes conjuntos de datos, aparentemente eso era lo que usaban las bases de datos de estilo SQL cuando la potencia informática era muy limitada.

Fuente: Estoy trabajando con un desarrollador senior que mencionó que usarían un índice para evitar tener que seleccionar los valores reales en la base de datos debido a restricciones de rendimiento.

Según la documentación que he verificado, son solo 'claves principales', pero no son las mismas que antes, es posible que sea necesario investigar para obtener algún beneficio de rendimiento oscuro.

Información adicional puede ser encontrada aqui:https://dev.mysql.com/doc/refman/5.7/en/order-by-optimization.html

Consulte el título "Influir en la optimización ORDER BY" en el artículo al que se hace referencia.

información relacionada