При обычной обработке запросов MySQL будет сканировать индекс на предмет значений предложения where (т.е. zipId = 13458).Затем использует индекс для поиска соответствующих значений из основной таблицы MyISAM (второй доступ к диску).Когда вы загружаете таблицу в память, все обращения к диску осуществляются в памяти, а не с чтения реального диска.
Медленная часть запроса - это поиск по индексу в главной таблице.Таким образом, загрузка индекса в память может не улучшить скорость запроса.
Нужно попробовать Объяснить Выберите в своих запросах, чтобы увидеть, как используется индекс.
Редактировать : Поскольку я не думаю, что ответы на ваши комментарии будут помещаться в поле для комментариев.Я отвечу на них здесь.
MyISAM сам по себе не имеет кеша.Кэширование диска зависит от ОС.Сколько вашей таблицы кэшируется, зависит от того, что еще вы используете в системе, и сколько данных вы читаете.В частности, Windows не дает пользователю возможности контролировать, какие данные кэшируются и как долго.
Операционная система кэширует дисковые блоки (фрагменты 4K или 8K) файла индекса или файла полной таблицы.
SELECT indexed_col FROM tb1 WHERE zipId+0>1
Подобные запросы, когда вы используете функции предиката (предложение Where)) может заставить MySQL выполнять полное сканирование таблицы, а не использовать какой-либо индекс.Как я уже говорил выше, используйте EXPLAIN SELECT, чтобы увидеть, что делает MySQL.
Если вы хотите больше контроля над кешем, попробуйте использовать таблицу INNODB.Движок InnoDB создает свой собственный кеш, размер которого вы можете изменять, и лучше сохраняет в нем самые последние использованные данные.