MySQL/MariaDB: преобразование производительности (часть 3)

key_buffer_size определяет объём памяти, предназначенный для сохранения индексных блоков для табличных данных типа MyISAM. Данная информация обычно считывается из кеша, взамен обращения к диску.
Одной из существенно весомых функций в преобразовании производительности MySQL зарекомендовала себя key_buffer_size. Этот буфер применяется как открытый для всех операционных задач.
Для получения информации о необходимости изменения действующего значения, необходимо применить следующий алгоритм:

1
2
3
4
5
6
MariaDB [(none)]>; show variables like 'key_buffer_size';
+-----------------+----------+
| Variable_name   | Value    |
+-----------------+----------+
| key_buffer_size | 16777216 |
+-----------------+----------+

Вследствие обработки данных, мы получаем фактический объём – 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.

Comments

comments