No tiene ningún índice además de la clave principal. Debe crear un índice en los campos que usa en su declaración WHERE. Si necesita indexar solo 1 campo o una combinación de varios campos depende de los otros SELECT que ejecutará en esa tabla.
Tenga en cuenta que REGEXP
no puede usar índices en absoluto, LIKE
puede usar el índice solo cuando no comienza con un comodín (entonces LIKE 'a%'
puede usar índice, pero LIKE '%a'
no puede), mayor que / menor que (<>) por lo general no usan índices también.
Así que te queda el code
y check
los campos. Supongo que muchas filas tendrán el mismo valor para check
, por lo que comenzaría el índice con code
campo. Los índices de campos múltiples solo se pueden usar en el orden en que se definen...
Imagine el índice creado para los campos code, check
. Este índice se puede usar en su consulta (donde la cláusula WHERE contiene ambos campos), también en la consulta con solo code
campo, pero no en la consulta con solo check
campo.
¿Es importante ORDER BY id
? De lo contrario, déjalo fuera, evitará que pase la ordenación y tu consulta terminará más rápido.