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.