Spec-Zone.ru › MySQL 8.4

16.5 Интеграция INFORMATION_SCHEMA и словаря данных

С введением словаря данных следующие INFORMATION_SCHEMA таблицы реализованы как представления на таблицах словаря данных:

  • CHARACTER_SETS

  • CHECK_CONSTRAINTS

  • COLLATIONS

  • COLLATION_CHARACTER_SET_APPLICABILITY

  • COLUMNS

  • COLUMN_STATISTICS

  • EVENTS

  • FILES

  • INNODB_COLUMNS

  • INNODB_DATAFILES

  • INNODB_FIELDS

  • INNODB_FOREIGN

  • INNODB_FOREIGN_COLS

  • INNODB_INDEXES

  • INNODB_TABLES

  • INNODB_TABLESPACES

  • INNODB_TABLESPACES_BRIEF

  • INNODB_TABLESTATS

  • KEY_COLUMN_USAGE

  • KEYWORDS

  • PARAMETERS

  • PARTITIONS

  • REFERENTIAL_CONSTRAINTS

  • RESOURCE_GROUPS

  • ROUTINES

  • SCHEMATA

  • STATISTICS

  • ST_GEOMETRY_COLUMNS

  • ST_SPATIAL_REFERENCE_SYSTEMS

  • TABLES

  • TABLE_CONSTRAINTS

  • TRIGGERS

  • VIEWS

  • VIEW_ROUTINE_USAGE

  • VIEW_TABLE_USAGE

Запросы к этим таблицам теперь более эффективны, поскольку они извлекают информацию из таблиц словаря данных, а не другими, более медленными способами. В частности, для каждой INFORMATION_SCHEMA таблицы, являющейся представлением таблиц словаря данных:

  • Серверу больше не нужно создавать временную таблицу для каждого запроса к INFORMATION_SCHEMA таблице.

  • Когда основополагающие таблицы словаря данных хранят значения, ранее полученные путем сканирования каталогов (например, для перечисления имен баз данных или имен таблиц в базах данных) или операций открытия файлов (например, для чтения информации из .frm файлов), запросы к этим значениям теперь используют поиск в таблице. (Кроме того, даже для не-представления 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 8.4 тесно связаны со словарем данных, что приводит к нескольким различиям в использовании. См. Раздел 16.7, «Различия в использовании словаря данных».

© 2025 Oracle
Licensed under the GPLv2 License.
https://docs.oracle.com/cd/E17952_01/mysql-8.4-en/data-dictionary-information-schema.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API