InnoDB bruger grupperede primærnøgler, så den primære nøgle gemmes sammen med rækken på datasiderne, ikke på separate indekssider. For at lave en rækkeviddescanning skal du stadig scanne gennem alle de potentielt brede rækker på datasider; Bemærk, at denne tabel indeholder en TEKST-kolonne.
To ting jeg ville prøve:
- kør
optimize table
. Dette vil sikre, at datasiderne fysisk opbevares i sorteret rækkefølge. Dette kunne tænkes at fremskynde en rækkeviddescanning på en klynget primærnøgle. - opret et ekstra ikke-primært indeks på kun kolonnen change_event_id. Dette vil gemme en kopi af den kolonne på indekssider, som er meget hurtigere at scanne. Når du har oprettet den, skal du tjekke forklaringsplanen for at sikre, at den bruger det nye indeks.
(du vil sandsynligvis også gøre kolonnen change_event_id bigint usigneret hvis det stiger fra nul)