Таблица с 800k строками не должна быть проблемой для mysql, независимо от того, какой механизм хранения вы используете. При размере 100 МБ полная таблица (данные и ключи) должна находиться в памяти (кэш-память mysql, файловый кеш ОС или, вероятно, оба).
Сначала вы проверяете индексы. В большинстве случаев оптимизация индексов дает вам лучшее повышение производительности. Никогда не делай ничего другого, если только ты не уверен, что они в форме. Вызовите запросы, используя EXPLAIN
, и проследите за случаями, когда индекс используется или неверный. Это должно быть сделано с данными реального мира, а не на сервере с тестовыми данными.
После того, как вы оптимизировали свои индексы, запросы должны заканчиваться за доли секунды. Если запросы все еще слишком медленные, просто постарайтесь не запускать их, используя кеш в вашем приложении (memcached и т. Д.). Учитывая, что данные в таблице никогда не меняются, не должно быть проблем со старыми данными кеша и т. Д.