Есть весьма нагруженная машина с 32Гб оперативки. Под MySQL удаётся выделить не более 11Гб оперативки. Иначе совсем не остаётся места под кеши и буфера и всё начинает чудовищно тормозить.
Есть MySQL базы суммарным объёмом 36Гб. Основная часть используется редко, поэтому выделенные 11Гб вполне справляются. Да, некоторые крупные запросы тормозят, но это не критично.
Критично другое. Есть таблица на 1Гб размером. Когда к ней обращаются, результат нужен мгновенный. Но обращения к ней по всему объёму бывают редко, поэтому она вытесняется из кешей и оно при обращении часто тормозит.
Можно ли как-то придумать, чтобы эта таблица всегда была в кеше MySQL?
Вариант, который приходит в лоб — это часто сканировать эту таблицу, скажем, регулярно читая её записи по случайному индексу. Но как-то криво :)
Есть иные способы?
↧
Как бы б одну InnoDB базу MySQL всё время держать закешированной в памяти?
↧