Kromě primárního klíče nemáte žádné indexy. Musíte vytvořit index pro pole, která používáte v příkazu WHERE. Pokud potřebujete indexovat pouze 1 pole nebo kombinaci několika polí, závisí na ostatních SELECTech, které budete proti této tabulce spouštět.
Mějte na paměti, že REGEXP
nemůže vůbec používat indexy, LIKE
lze použít index pouze v případě, že nezačíná zástupným znakem (takže LIKE 'a%'
můžete použít index, ale LIKE '%a'
nelze), větší než / menší než (<>) obvykle také nepoužívejte indexy.
Zbývá vám tedy code
a check
pole. Předpokládám, že mnoho řádků bude mít stejnou hodnotu pro check
, takže bych index začal code
pole. Vícepolní indexy lze použít pouze v pořadí, v jakém jsou definovány...
Představte si index vytvořený pro pole code, check
. Tento index lze použít ve vašem dotazu (kde klauzule WHERE obsahuje obě pole), také v dotazu pouze s code
pole, ale ne v dotazu pouze s check
pole.
Je důležité ORDER BY id
? Pokud ne, vynechejte to, zabrání to průchodu řazení a váš dotaz bude dokončen rychleji.