key_buffer_size определяет объём памяти, предназначенный для сохранения индексных блоков для табличных данных типа MyISAM. Данная информация обычно считывается из кеша, взамен обращения к диску.
Одной из существенно весомых функций в преобразовании производительности MySQL зарекомендовала себя key_buffer_size. Этот буфер применяется как открытый для всех операционных задач.
Для получения информации о необходимости изменения действующего значения, необходимо применить следующий алгоритм:
1 2 3 4 5 6 |
Вследствие обработки данных, мы получаем фактический объём – 16 МБ.
Следующим этапом производим данную операцию:
1 2 3 4 5 6 7 8 9 10 11 12 13 | MariaDB [(none)]>; SHOW STATUS LIKE "key%"; +------------------------+----------+ | Variable_name | Value | +------------------------+----------+ | Key_blocks_not_flushed | 0 | | Key_blocks_unused | 12678 | | Key_blocks_used | 1233 | | Key_blocks_warm | 70 | | Key_read_requests | 23255430 | | Key_reads | 10765 | | Key_write_requests | 33749 | | Key_writes | 23912 | +------------------------+----------+ |
Здесь необходимо сконцентрироваться на последующих фунуциях.
Key_reads – данный параметр определяет число сканирований индексных блоков с диска в MyISAM;
- Key_read_requests – характеризует число считываний блоков конкретно из кеша.
Основываясь на данной информации, возможно произведение расчёта “key_cache_hit_percentage” с помощью данной формулы:
1 | key_cache_hit_percentage = (1 - Key_reads/Key_read_requests) * 100 |
В нашем варианте значение составит:
1 2 | >>> key_cache_hit_percentage = (1.0 - (107650.0 / 23255430.0)) * 100; print(key_cache_hit_percentage) 99.5370973575 |
Также возможно возникновение ситуации, когда показатель не достигает отметки 90%. В данном случае возможно увеличение параметра key_buffer_size.