U heeft geen indexen behalve de primaire sleutel. U moet een index maken op velden die u in uw WHERE-statement gebruikt. Of u slechts 1 veld hoeft te indexeren of een combinatie van meerdere velden hangt af van de andere SELECT's die u tegen die tabel zult gebruiken.
Houd er rekening mee dat REGEXP
kan helemaal geen indexen gebruiken, LIKE
kan index alleen gebruiken als het niet met een jokerteken begint (dus LIKE 'a%'
kan index gebruiken, maar LIKE '%a'
kan niet), groter dan / kleiner dan (<>) gebruik meestal ook geen indexen.
U houdt dus de code
over en check
velden. Ik veronderstel dat veel rijen dezelfde waarde zullen hebben voor check
, dus ik zou de index beginnen met code
veld. Indexen met meerdere velden kunnen alleen worden gebruikt in de volgorde waarin ze zijn gedefinieerd...
Stel je voor dat index is gemaakt voor velden code, check
. Deze index kan worden gebruikt in uw zoekopdracht (waar de WHERE-clausule beide velden bevat), ook in de zoekopdracht met alleen code
veld, maar niet in zoekopdracht met alleen check
veld.
Is het belangrijk om ORDER BY id
? Als dit niet het geval is, laat het dan weg, het zal de sorteerpas voorkomen en uw zoekopdracht zal sneller eindigen.