Ну, учитывая то что MySQL читает больше миллиона записей из 9, то 20 секунд это не так что бы совсем ужасно.
Sending data может долго висеть если у тебя проблемы с сетью, с диском и также этот статус показывается когда на самом деле запрос еще выполняется
Попробуй создать индекс на (`date`,`clicks`,`searches`, `id_word`).
Тогда MySQL будет использовать только индексный файл и не будет трогать файл данных.
Попробуй увеличить также sort_buffer_size и read_rnd_buffer_size.