Em um servidor de 1GB, não tenha innodb_buffer_pool_size mais do que cerca de 200M. Defini-lo para 800M causará a troca. O MySQL espera que seus caches permaneçam na RAM; quando eles são trocados para o disco, o desempenho sofre terrivelmente.
Sua tabela provavelmente é grande demais para ser totalmente armazenada em cache. Assim, uma "varredura de tabela" irá estourar o cache, tornando o cache inútil e a consulta será executada na velocidade do disco. Encontre uma maneira de evitar consultas como essa ou obtenha mais RAM.