table_cache
является наиболее полезной конфигурационной директивой для изменения. Каждый раз, когда MySQL обращается к таблице, он загружает таблицу в кэш. Если у вас есть большое количество таблиц, быстрее их кэшировать.
Посмотрите на переменные вашего сервера, выполнив:
show status;
и посмотрите на переменную open_tables
. Если это совпадает с вашим table_cache
значением и opened_tables
продолжает расти, вам нужно увеличить table_cache
значение в вашем файле конфигурации. Вы найдете баланс, экспериментируя с этими переменными в пиковое время. Вы хотите настроить его таким образом, чтобы в часы пиковой нагрузки opened_tables
он оставался низким даже после долгой работы сервера.
key_buffer_size
также хорошая переменная для экспериментов. Эта переменная влияет на размер буфера индекса, и увеличение этой переменной увеличивает скорость обработки индекса MySQL. Вы можете show variables;
снова посмотреть переменные с помощью команды и сравнить key_read_requests
с key_reads
. В идеале, вы хотите, чтобы соотношение между этими двумя переменными было как можно ниже, и вы можете сделать это, увеличив размер key_buffer_size
. Если вы установите эту переменную выше, у вас будет меньше операций записи и чтения непосредственно на диск и с него, что было вашей главной задачей.
show status;
должна видеть переменные состояния, такие какOpen_tables
иOpened_tables
.table_cache
кажется, был удален в последних версиях MySQL.