InnoDB използва клъстерирани първични ключове, така че първичният ключ се съхранява заедно с реда в страниците с данни, а не в отделни индексни страници. За да направите сканиране на диапазон, все още трябва да сканирате всички потенциално широки редове в страниците с данни; имайте предвид, че тази таблица съдържа колона TEXT.
Две неща, които бих опитал:
- изпълнете
optimize table
. Това ще гарантира, че страниците с данни се съхраняват физически в сортиран ред. Това би могло да ускори сканирането на обхвата на клъстериран първичен ключ. - създайте допълнителен неосновен индекс само в колоната change_event_id. Това ще съхранява копие на тази колона в индексни страници, които ще бъдат много по-бързи за сканиране. След като го създадете, проверете плана за обяснение, за да се уверите, че използва новия индекс.
(също така вероятно искате да направите колоната change_event_id bigint неподписан ако се увеличава от нула)