Подтвердить что ты не робот

Что представляет собой база данных information_schema?

У меня есть одна база данных в mysql.

Но когда я вхожу в phpMyAdmin, он показывает другую базу данных, называемую information_schema.

Эта база данных всегда присутствует с одной базой данных?

Я хочу сказать, есть ли копия information_schema для каждой базы данных, присутствующей в mysql, или есть ли одна база данных с именем inforemation_schema на сервер mysql?

Если я изменю эту базу данных information_schema, как это повлияет на мою текущую базу данных?

4b9b3361

Ответ 1

Вы можете думать о том, что information_schema является "основной базой данных", которая содержит сведения обо всех других базах данных на сервере, таких как имена и типы таблиц, столбцов и пользователей.

Что такое information_schema?

От справочная документация:

INFORMATION_SCHEMA обеспечивает доступ к метаданные базы данных.

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

ИНФОРМАЦИЯ_SCHEMA - это информация база данных, место, где хранится информация обо всех других базы данных, которые сервер MySQL поддерживает. Внутри INFORMATION_SCHEMA существует несколько таблиц только для чтения. Они на самом деле являются представлениями, а не базовыми таблиц, поэтому нет файлов связанные с ними.

Что хранится в information_schema?

Вы можете видеть, какие вещи хранятся в information_schema и как они организованы, просмотрев эту диаграмму (для MySQL 5.0 ) или эта диаграмма (для MySQL 5.1).

Что произойдет, если я изменю information_schema?

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

23.7.3: Могу ли я добавить или иным образом изменить таблицы, найденные в База данных INFORMATION_SCHEMA?

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

Это означает, что если вы обнаружите, что можете изменить информацию_схемы (что должно быть невозможно и находится в MySQL, но другие реализации SQL могут позволить это), вы должны, по крайней мере, не хотеть этого делать. Если вы можете повредить/изменить информационную_схему, вы повредите фактическую структуру (например, имена таблиц, типы столбцов) других ваших баз данных.

У каждого пользователя есть своя собственная копия information_schema?

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

От справочная документация:

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

Где я могу найти дополнительную информацию?