O InnoDB usa chaves primárias em cluster, então a chave primária é armazenada junto com a linha nas páginas de dados, não em páginas de índice separadas. Para fazer uma varredura de intervalo, você ainda precisa varrer todas as linhas potencialmente largas nas páginas de dados; observe que esta tabela contém uma coluna TEXT.
Duas coisas que eu tentaria:
- execute
optimize table
. Isso garantirá que as páginas de dados sejam armazenadas fisicamente em ordem ordenada. Isso poderia acelerar uma varredura de intervalo em uma chave primária clusterizada. - crie um índice não primário adicional apenas na coluna change_event_id. Isso armazenará uma cópia dessa coluna em páginas de índice que são muito mais rápidas de digitalizar. Depois de criá-lo, verifique o plano de explicação para ter certeza de que está usando o novo índice.
(você provavelmente também deseja tornar a coluna change_event_id bigint unsigned se estiver incrementando de zero)