Spec-Zone .ru
спецификации, руководства, описания, API

Глава 20. INFORMATION_SCHEMA Таблицы

Оглавление

20.1. INFORMATION_SCHEMA CHARACTER_SETS Таблица
20.2. INFORMATION_SCHEMA COLLATIONS Таблица
20.3. INFORMATION_SCHEMA COLLATION_CHARACTER_SET_APPLICABILITY Таблица
20.4. INFORMATION_SCHEMA COLUMNS Таблица
20.5. INFORMATION_SCHEMA COLUMN_PRIVILEGES Таблица
20.6. INFORMATION_SCHEMA ENGINES Таблица
20.7. INFORMATION_SCHEMA EVENTS Таблица
20.8. INFORMATION_SCHEMA FILES Таблица
20.9. INFORMATION_SCHEMA GLOBAL_STATUS и SESSION_STATUS Таблицы
20.10. INFORMATION_SCHEMA GLOBAL_VARIABLES и SESSION_VARIABLES Таблицы
20.11. INFORMATION_SCHEMA KEY_COLUMN_USAGE Таблица
20.12. INFORMATION_SCHEMA OPTIMIZER_TRACE Таблица
20.13. INFORMATION_SCHEMA PARAMETERS Таблица
20.14. INFORMATION_SCHEMA PARTITIONS Таблица
20.15. INFORMATION_SCHEMA PLUGINS Таблица
20.16. INFORMATION_SCHEMA PROCESSLIST Таблица
20.17. INFORMATION_SCHEMA PROFILING Таблица
20.18. INFORMATION_SCHEMA REFERENTIAL_CONSTRAINTS Таблица
20.19. INFORMATION_SCHEMA ROUTINES Таблица
20.20. INFORMATION_SCHEMA SCHEMATA Таблица
20.21. INFORMATION_SCHEMA SCHEMA_PRIVILEGES Таблица
20.22. INFORMATION_SCHEMA STATISTICS Таблица
20.23. INFORMATION_SCHEMA TABLES Таблица
20.24. INFORMATION_SCHEMA TABLESPACES Таблица
20.25. INFORMATION_SCHEMA TABLE_CONSTRAINTS Таблица
20.26. INFORMATION_SCHEMA TABLE_PRIVILEGES Таблица
20.27. INFORMATION_SCHEMA TRIGGERS Таблица
20.28. INFORMATION_SCHEMA USER_PRIVILEGES Таблица
20.29. INFORMATION_SCHEMA VIEWS Таблица
20.30. INFORMATION_SCHEMA Таблицы для InnoDB
20.30.1. INFORMATION_SCHEMA INNODB_CMP и INNODB_CMP_RESET Таблицы
20.30.2. INFORMATION_SCHEMA INNODB_CMP_PER_INDEX и INNODB_CMP_PER_INDEX_RESET Таблицы
20.30.3. INFORMATION_SCHEMA INNODB_CMPMEM и INNODB_CMPMEM_RESET Таблицы
20.30.4. INFORMATION_SCHEMA INNODB_TRX Таблица
20.30.5. INFORMATION_SCHEMA INNODB_LOCKS Таблица
20.30.6. INFORMATION_SCHEMA INNODB_LOCK_WAITS Таблица
20.30.7. INFORMATION_SCHEMA INNODB_SYS_TABLES Таблица
20.30.8. INFORMATION_SCHEMA INNODB_SYS_INDEXES Таблица
20.30.9. INFORMATION_SCHEMA INNODB_SYS_COLUMNS Таблица
20.30.10. INFORMATION_SCHEMA INNODB_SYS_FIELDS Таблица
20.30.11. INFORMATION_SCHEMA INNODB_SYS_FOREIGN Таблица
20.30.12. INFORMATION_SCHEMA INNODB_SYS_FOREIGN_COLS Таблица
20.30.13. INFORMATION_SCHEMA INNODB_SYS_TABLESTATS Представление
20.30.14. INFORMATION_SCHEMA INNODB_SYS_DATAFILES Таблица
20.30.15. INFORMATION_SCHEMA INNODB_SYS_TABLESPACES Таблица
20.30.16. INFORMATION_SCHEMA INNODB_BUFFER_PAGE Таблица
20.30.17. INFORMATION_SCHEMA INNODB_BUFFER_PAGE_LRU Таблица
20.30.18. INFORMATION_SCHEMA INNODB_BUFFER_POOL_STATS Таблица
20.30.19. INFORMATION_SCHEMA INNODB_METRICS Таблица
20.30.20. INFORMATION_SCHEMA INNODB_FT_CONFIG Таблица
20.30.21. INFORMATION_SCHEMA INNODB_FT_DEFAULT_STOPWORDТаблица
20.30.22. INFORMATION_SCHEMA INNODB_FT_INDEX_TABLE Таблица
20.30.23. INFORMATION_SCHEMA INNODB_FT_INDEX_CACHE Таблица
20.30.24. INFORMATION_SCHEMA INNODB_FT_DELETED Таблица
20.30.25. INFORMATION_SCHEMA INNODB_FT_BEING_DELETED Таблица
20.31. Пул потоков INFORMATION_SCHEMA Таблицы
20.31.1. INFORMATION_SCHEMA TP_THREAD_STATE Таблица
20.31.2. INFORMATION_SCHEMA TP_THREAD_GROUP_STATE Таблица
20.31.3. INFORMATION_SCHEMA TP_THREAD_GROUP_STATS Таблица
20.32. Расширения SHOW Операторы

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

Примечания использования для INFORMATION_SCHEMA База данных

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

Хотя можно выбрать INFORMATION_SCHEMA как база данных значения по умолчанию с a USE оператор, можно только считать содержание таблиц, не выполнить INSERT, UPDATE, или DELETE операции на них.

Пример

Вот пример оператора, который получает информацию от INFORMATION_SCHEMA:

mysql> SELECT table_name, table_type,
        engine    -> FROM information_schema.tables    -> WHERE table_schema = 'db5'    -> ORDER
        BY table_name;+------------+------------+--------+| table_name | table_type | engine |+------------+------------+--------+| fk         | BASE TABLE | InnoDB || fk2        | BASE TABLE | InnoDB || goto       | BASE TABLE | MyISAM || into       | BASE TABLE | MyISAM || k          | BASE TABLE | MyISAM || kurs       | BASE TABLE | MyISAM || loop       | BASE TABLE | MyISAM || pk         | BASE TABLE | InnoDB || t          | BASE TABLE | MyISAM || t2         | BASE TABLE | MyISAM || t3         | BASE TABLE | MyISAM || t7         | BASE TABLE | MyISAM || tables     | BASE TABLE | MyISAM || v          | VIEW       | NULL   || v2         | VIEW       | NULL   || v3         | VIEW       | NULL   || v56        | VIEW       | NULL   |+------------+------------+--------+17 rows in set (0.01 sec)

Объяснение: оператор запрашивает список всех таблиц в базе данных db5, показ только три сведения: имя таблицы, ее типа, и ее механизма хранения.

Соображения Набора символов

Определение для символьных столбцов (например, TABLES.TABLE_NAME) обычно VARCHAR(N) CHARACTER SET utf8 где N по крайней мере 64. MySQL использует сопоставление значения по умолчанию для этого набора символов (utf8_general_ci) для всех поисков, видов, сравнений, и других строковых операций на таких столбцах.

Поскольку некоторые объекты MySQL представляются как файлы, поискы в INFORMATION_SCHEMA на строковые столбцы может влиять чувствительность к регистру файловой системы. Для получения дополнительной информации см. Раздел 10.1.7.9, "Сопоставление и INFORMATION_SCHEMA Поискы".

INFORMATION_SCHEMA как Альтернатива SHOW Операторы

SELECT ... FROM INFORMATION_SCHEMA оператор предназначается как более непротиворечивый способ обеспечить доступ к информации, предоставленной различным SHOW операторы, которые поддерживает MySQL (SHOW DATABASES, SHOW TABLES, и т.д). Используя SELECT имеет эти преимущества, по сравнению с SHOW:

Поскольку SHOW знакомо и широко используемый, SHOW операторы остаются альтернативой. Фактически, наряду с реализацией INFORMATION_SCHEMA, есть улучшения к SHOW как описано в Разделе 20.32, "Расширения SHOW Операторы".

Полномочия

Каждый пользователь MySQL имеет право получить доступ к этим таблицам, но может видеть только строки в таблицах, которые соответствуют объектам, для которых у пользователя есть надлежащие права доступа. В некоторых случаях (например, ROUTINE_DEFINITION столбец в INFORMATION_SCHEMA.ROUTINES таблица), пользователи, у которых есть недостаточные полномочия, видят NULL. Эти ограничения не просят InnoDB таблицы; можно видеть их с только PROCESS полномочие.

Те же самые полномочия применяются к выбору информации от INFORMATION_SCHEMA и просмотр той же самой информации через SHOW операторы. В любом случае у Вас должно быть некоторое полномочие на объекте видеть информацию об этом.

Соображения производительности

INFORMATION_SCHEMA запросы, которые ищут информацию больше чем от одной базы данных, могли бы занять много времени и воздействовать на производительность. Чтобы проверить эффективность запроса, можно использовать EXPLAIN. Для получения информации об использовании EXPLAIN вывод, чтобы настроиться INFORMATION_SCHEMA запросы, см. Раздел 8.2.4, "Оптимизируя INFORMATION_SCHEMA Запросы".

Соображения стандартов

Реализация для INFORMATION_SCHEMA структуры таблиц в MySQL следуют за ANSI/ISO стандартный компонент SQL:2003 11 Схем. Наше намерение является приблизительным соответствием с базовой функцией SQL:2003 схема Основной информации F021.

Пользователи SQL Server 2000 (который также следует за стандартом) могут заметить подобие strong. Однако, MySQL опустил много столбцов, которые не важны для нашей реализации, и добавили столбцы, которые специфичны для MySQL. Один такой столбец ENGINE столбец в INFORMATION_SCHEMA.TABLES таблица.

Хотя другие DBMSs используют множество имен, как syscat или system, стандартное имя INFORMATION_SCHEMA.

Чтобы избегать использования любого имени, которое резервируется в стандарте или в DB2, SQL-сервере, или Oracle, мы поменяли имена некоторых столбцов отмеченное "расширение MySQL". (Например, мы изменились COLLATION к TABLE_COLLATION в TABLES таблица.) См. список зарезервированных слов около конца этой статьи: http://web.archive.org/web/20070409075643rn_1/www.dbazine.com/db2/db2-disarticles/gulutzan5.

Соглашения в INFORMATION_SCHEMA Ссылочные Разделы

Следующие разделы описывают каждую из таблиц и столбцов в INFORMATION_SCHEMA. Для каждого столбца есть три сведения:

Много разделов указывают что SHOW оператор эквивалентен a SELECT это получает информацию от INFORMATION_SCHEMA. Для SHOW операторы, которые выводят на экран информацию для базы данных значения по умолчанию, если Вы опускаете a FROM db_name пункт, можно часто выбирать информацию для базы данных значения по умолчанию, добавляя AND TABLE_SCHEMA = SCHEMA() условие к WHERE пункт запроса, который получает информацию от INFORMATION_SCHEMA таблица.

Для получения информации о INFORMATION_SCHEMA таблицы, определенные для InnoDB механизм хранения, см. Раздел 20.30,"INFORMATION_SCHEMA Таблицы для InnoDB" . Для получения информации о INFORMATION_SCHEMA таблицы, определенные для плагина пула потоков, см. Раздел 20.31, "Пул потоков INFORMATION_SCHEMA Таблицы".

Для ответов на вопросы, которые часто задают относительно INFORMATION_SCHEMA база данных, см. Раздел B.7, "FAQ MySQL 5.6: INFORMATION_SCHEMA".