Фрагмент запроса "a.ID IN (ннн,нн)" уже выбирает максимально быстрым методом по первичному ключу всю необходимую информацию, которая дальше дофильтровывается.
Дальше уже вопрос - а насколько много столбцов Вы получаете запросом, есть ли там лишние?
Есть ли столбцы типа TEXT, Varchar, у которых переменная длина, что может немного понизить производительность в нкоторых операциях.
Следующий вопрос - а не пора ли оптимизировать настройки сервера - кэш, память. Начиная с
mysqltuner.com , заканчивая вдумчивым анализом манов и статистики использования.
Наивный вопрос - Вы так часто ребутите сервер, что первая секунда в первом запросе так критична?
После первого обращения к таблице индекс (частично?) грузится в оперативную память и пока не вытеснится кем-то еще - очень хорошо ускоряет процесс запроса. Отсюда есть интересное следствие - много индексов могут быть даже вредны - в запросе они не задействуются, а занимают место на жестком диске и в оперативной памяти.
И еще для тестов без кэширования ребутить сервер не надо. Используйте:
SELECT SQL_NO_CACHE a.ID FROM articles a WHERE ...