Как проверить размер словаря данных в MySql - PullRequest
0 голосов
/ 14 декабря 2018

Как проверить мой текущий размер кэша словаря данных?

К вашему сведению: -> Кэш словаря данных - в котором хранится информация об открытых таблицах.Увеличение размера кэша словаря данных зависит от количества открытых таблиц.

-> table_open_cache - это переменная, которая содержит значение, которое mysql может иметь общее количество открытых таблиц.Я спрашиваю текущий размер словаря данных, который имеет данные открытых таблиц.(Статус текущего размера словаря данных).

Версия MySql - 5.7.18

Ответы [ 2 ]

0 голосов
/ 14 декабря 2018

Эти переменные могут быть релевантными:

table_open_cache
table_open_cache_instances
table_definition_cache
schema_definition_cache  (new in 8.0)
tablespace_definition_cache  (new in 8.0)

Каждый кеш имеет фиксированный размер, настраиваемый во время запуска.(В некоторых случаях в более новых версиях его можно динамически изменять.) Документы для 5.7 говорят, например, что table_open_cache является "Динамическим"

Эти значения ГЛОБАЛЬНОГО СОСТОЯНИЯ могут иметь отношение:

Open_table_definitions
Opened_table_definitions
Opened_tables
Opened_files
Table_open_cache_hits
Table_open_cache_misses
Table_open_cache_overflows

Попадания / пропуски / переполнения дают вам хорошие подсказки относительно того, достаточно ли table_open_cache достаточно большой, но не тот, который является оптимальным размером.

В версии 5.7 и ранее словарь данных получен из файлов .frm, разбросанных на диске.В 8.0 он находится в наборе таблиц InnoDB.Предположительно, подходящий запрос может предоставить некоторые соответствующие метрики.

См. Также такие вещи, как performance_schema_max_table_handles .

0 голосов
/ 14 декабря 2018

Количество определений таблиц, которые можно сохранить в кэше определений.Если вы используете большое количество таблиц, вы можете создать большой кэш определений таблиц, чтобы ускорить открытие таблиц.Кэш определения таблицы занимает меньше места и не использует файловые дескрипторы, в отличие от обычного кэша таблицы.Минимальное значение - 400. Значение по умолчанию основано на следующей формуле, ограниченной пределом 2000:

MIN(400 + table_open_cache / 2, 2000)

Подробнее здесь https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_table_definition_cache

...