16.5 Интеграция INFORMATION_SCHEMA и словаря данных
С введением словаря данных следующие таблицы INFORMATION_SCHEMA реализованы как представления на таблицах словаря данных:
KEYWORDS
Запросы к этим таблицам теперь более эффективны, поскольку они получают информацию из таблиц словаря данных, а не другими, более медленными способами. В частности, для каждой таблицы INFORMATION_SCHEMA, которая является представлением на таблицах словаря данных:
Сервер больше не должен создавать временную таблицу для каждого запроса к таблице
INFORMATION_SCHEMA.Когда подлежащие таблицы словаря данных хранят значения, ранее полученные с помощью сканирования каталога (например, для перечисления имен баз данных или имен таблиц в базах данных) или операций открытия файлов (например, для чтения информации из файлов
.frm), запросыINFORMATION_SCHEMAдля этих значений теперь используют поиск по таблице. (Кроме того, даже для таблицыINFORMATION_SCHEMA, не являющейся представлением, значения, такие как имена баз данных и таблиц, извлекаются с помощью поиска из словаря данных и не требуют сканирования каталогов или файлов.)Индексы на подлежащих таблицах словаря данных позволяют оптимизатору создавать эффективные планы выполнения запросов, что не относится к предыдущей реализации, обрабатывавшей таблицу
INFORMATION_SCHEMAс использованием временной таблицы за каждый запрос.
Перечисленные выше улучшения также применяются к операторам SHOW, которые отображают информацию, соответствующую таблицам INFORMATION_SCHEMA, которые являются представлениями на таблицах словаря данных. Например, SHOW
DATABASES отображает ту же информацию, что и таблица SCHEMATA.
Помимо введения представлений на таблицах словаря данных, статистические данные таблиц, содержащиеся в таблицах STATISTICS и TABLES, теперь кешируются для повышения производительности запросов INFORMATION_SCHEMA. Переменная системы information_schema_stats_expiry определяет период времени, по истечении которого кешированные статистические данные таблиц истекают. По умолчанию это 86400 секунд (24 часа). Если нет кешированных статистических данных или статистические данные истекли, при запросе столбцов статистики таблиц статистика извлекается из хранилища. Для обновления кешированных значений в любое время для заданной таблицы используйте оператор ANALYZE TABLE.
Переменную information_schema_stats_expiry можно установить на 0, чтобы запросы INFORMATION_SCHEMA извлекали последние статистические данные напрямую из движка хранилища, что не так быстро, как извлечение кешированной статистики.
Дополнительную информацию см. в Разделе 10.2.3, «Оптимизация запросов INFORMATION_SCHEMA».
Таблицы INFORMATION_SCHEMA в MySQL 9.2 тесно связаны со словарем данных, что приводит к нескольким различиям в использовании. См. Раздел 16.7, «Различия в использовании словаря данных».
© 2025 Oracle
Licensed under the GPLv2 License.