¿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 WHERE
la 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.