Você não tem nenhum índice além da chave primária. Você precisa fazer o índice nos campos que você usa em sua instrução WHERE. Se você precisar indexar apenas 1 campo ou uma combinação de vários campos depende dos outros SELECTs que você estará executando nessa tabela.
Tenha em mente que
REGEXP
não pode usar índices, LIKE
pode usar o índice apenas quando não começa com curinga (portanto LIKE 'a%'
pode usar índice, mas LIKE '%a'
não pode), maior que / menor que (<>) geralmente não usa índices também. Então você fica com o
code
e check
Campos. Suponho que muitas linhas terão o mesmo valor para check
, então eu começaria o índice com code
campo. Índices de vários campos podem ser usados apenas na ordem em que são definidos... Imagine o índice criado para os campos
code, check
. Este índice pode ser usado em sua consulta (onde a cláusula WHERE contém os dois campos), também na consulta com apenas code
campo, mas não em consulta apenas com check
campo. É importante
ORDER BY id
? Caso contrário, deixe-o de fora, isso impedirá a passagem de classificação e sua consulta terminará mais rapidamente.