Нямате никакви индекси освен първичния ключ. Трябва да направите индекс на полетата, които използвате във вашия израз WHERE. Ако трябва да индексирате само 1 поле или комбинация от няколко полета зависи от другите SELECT, които ще изпълнявате срещу тази таблица.
Имайте предвид, че REGEXP
изобщо не може да използва индекси, LIKE
може да използва индекс само когато не започва с заместващ знак (така че LIKE 'a%'
може да използва индекс, но LIKE '%a'
не може), по-голям от / по-малък от (<>) обикновено също не използват индекси.
Така че остава с code
и check
полета. Предполагам, че много редове ще имат една и съща стойност за check
, така че бих започнал индекса с code
поле. Индексите с множество полета могат да се използват само в реда, в който са дефинирани...
Представете си индекс, създаден за полета code, check
. Този индекс може да се използва във вашата заявка (където клаузата WHERE съдържа и двете полета), също и в заявката само с code
поле, но не и в заявка само с check
поле.
Важно ли е ORDER BY id
? Ако не, оставете го, това ще предотврати преминаването на сортиране и заявката ви ще завърши по-бързо.