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.