MySQL no se utiliza el mejor índice

qué:

Tengo un simple consulta de selección:

SELECT *
FROM `inventory`
WHERE account_id = "1"
AND marketplace_id = "2"
AND sku = "3"
AND `date` = "4"

Tiene una condición en cuatro campos, por lo tanto, el índice natural es uno de estos cuatro campos.

Tengo los siguientes índices: introducir descripción de la imagen aquí

y cuando explico la consulta, me sale: introducir descripción de la imagen aquíDecir que está utilizando el segundo índice de la lista, en lugar de la 3ª o 4ª.

Si utilizo USE INDEX(account_id__marketplace_id__sku__date)en mi consulta, se utiliza con éxito, y filtra el 100%.

He tratado ANALYZE TABLEy OPTIMIZE TABLEreconstruir los índices, pero la situación sigue siendo el mismo!

A partir de mi experiencia con otras tablas, si ahora cae índices 2 y 3, y volver a crearlos, de tal manera que el índice más grande es el primero en el orden, la consulta seleccionará ese índice, es decir, se selecciona la primera que partidos más bien una máximos partido.

  • Versión del servidor MySQL : 7.5.25-google-log
  • versión del cliente MySQL phpMyAdmin : 05/05/59
Shi espera:

MySQL elegir índice por el tamaño de los datos de la tabla; introducir descripción de la imagen aquí

Usted puede tratar de insertar 600000 registros en el inventario, mantener el valor del registro aleatorio, y ejecutar "explicar"

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=372712&siteId=1
Recomendado
Clasificación