Non hai indici oltre alla chiave primaria. Devi creare un indice sui campi che usi nella tua istruzione WHERE. Se devi indicizzare solo 1 campo o una combinazione di più campi dipende dalle altre SELECT che eseguirai su quella tabella.
Tieni presente che REGEXP
non posso usare gli indici, LIKE
può usare index solo quando non inizia con un carattere jolly (quindi LIKE 'a%'
può usare index, ma LIKE '%a'
impossibile), maggiore di / minore di (<>) di solito non usano anche gli indici.
Quindi ti rimane il code
e check
campi. Suppongo che molte righe avranno lo stesso valore per check
, quindi inizierei l'indice con code
campo. Gli indici multicampo possono essere utilizzati solo nell'ordine in cui sono definiti...
Immagina l'indice creato per i campi code, check
. Questo indice può essere utilizzato nella tua query (dove la clausola WHERE contiene entrambi i campi), anche nella query con solo code
campo, ma non in query con solo check
campo.
È importante ORDER BY id
? In caso contrario, lascialo fuori, impedirà il passaggio di ordinamento e la tua query verrà completata più velocemente.