Я запустил отличный скрипт настройки производительности MySQL и начал работать с предложениями. Один, с которым я столкнулся, был
TABLE CACHE
Текущее значение table_cache = 4096 таблиц. Всего у вас 1073 таблицы. У вас есть 3900 открытых столов. Текущий рейтинг обращения к table_cache составляет 2%, в то время как 95% кэша вашей таблицы используется. Вы, вероятно, должны увеличить ваш table_cache
Я начал читать table_cache, но обнаружил, что документации по MySQL не хватает. Они говорят, чтобы увеличить table_cache
, «если у вас есть память». К сожалению, table_cache
переменная определяется как «Количество открытых таблиц для всех потоков».
Как изменится память, используемая MySQL, если я увеличу эту переменную? Что такое хорошее значение, чтобы установить его?
источник
table_open_cache
когда вы смотрите на документы. Смотрите ответ @MarkRs, глядя наtable_cache
Вы должны следить за переменной Opened_Tables и видеть, насколько быстро она увеличивается. Если это значительно быстрее, чем вы создаете новые таблицы (в том числе временные), то кеш таблиц может быть слишком маленьким.
Table_Cache всегда должен - ну, в основном, в любом случае - быть значительно больше, чем общее количество таблиц на сервере. В противном случае он будет продолжать открывать и закрывать таблицы.
Я не могу понять, как вы можете получить частоту попаданий в кеш 2%, если только вы не измеряли время сразу после перезапуска сервера или много использовали FLUSH TABLES (по отношению к количеству запросов). Обычно частота обращений к кешу таблиц должна составлять 99,9%, иначе производительность будет плохой.
Не делайте FLUSH TABLES, если вы можете избежать этого, это разрушает кеш.
Открытие таблиц стоит дорого, так как нужно читать файл FRM. В MyISAM это значительно хуже (чем в других движках), так как при закрытии таблицы он также выбрасывает все блоки в кеше ключей, полученные из его индексов. Поэтому закрытие таблицы сбрасывает ее индексы из кеша ключей == не хорошо! Другие движки сохраняют кэшированные блоки, но все еще должны перечитать метаданные и выделить некоторые структуры.
источник