KnigaRead.com/
KnigaRead.com » Компьютеры и Интернет » Базы данных » Алексей Паутов - MySQL: руководство профессионала

Алексей Паутов - MySQL: руководство профессионала

На нашем сайте KnigaRead.com Вы можете абсолютно бесплатно читать книгу онлайн Алексей Паутов, "MySQL: руководство профессионала" бесплатно, без регистрации.
Перейти на страницу:

mysql> SELECT LOGFILE_GROUP_NAME, FILE_TYPE, EXTRA

– > FROM INFORMATION_SCHEMA.FILES

– > WHERE FILE_NAME = 'new_undo.dat';

+--------------------+-----------+----------------+

| LOGFILE_GROUP_NAME | FILE_TYPE | EXTRA |

+--------------------+-----------+----------------+

| mygroup | UNDO FILE | CLUSTER_NODE=3 |

| mygroup | UNDO FILE | CLUSTER_NODE=4 |

| mygroup | UNDO FILE | CLUSTER_NODE=5 |

| mygroup | UNDO FILE | CLUSTER_NODE=6 |

+--------------------+-----------+----------------+

4 rows in set (0.01 sec)


Таблица FILES ненормативная. Это было добавлено в MySQL 5.1.6.


Не имеется никаких команд SHOW, связанных с таблицей FILES.

9.22. Таблица INFORMATION_SCHEMA PROCESSLIST

Таблица PROCESSLIST обеспечивает информацию, относительно выполняемых сервером потоков.


INFORMATION_SCHEMA

Name

SHOW

Name

Remarks

ID

Id

MySQL extension

USER

User

MySQL extension

HOST

Host

MySQL extension

DB

db

MySQL extension

COMMAND

Command

MySQL extension

TIME

Time

MySQL extension

STATE

State

MySQL extension

INFO

Info

MySQL extension


Примечания:


Таблица PROCESSLIST ненормативная. Это было добавлено в MySQL 5.1.7.


Подобно выводу из соответствующей инструкции SHOW, таблица PROCESSLIST покажет информацию только относительно Ваших собственных потоков, если Вы не имеете привилегию PROCESS, тогда Вы будете видеть информацию относительно других потоков. Как анонимный пользователь Вы не можете видеть любые строки вообще.


Если инструкция SQL обращается INFORMATION_SCHEMA.PROCESSLIST, MySQL заполнит всю таблицу один раз, когда, операторное выполнение начинается, так что гарантируется непротиворечивость чтения в течение инструкции. Не имеется никакой непротиворечивости чтения для многооператорной транзакции.

Следующие инструкции эквивалентны:SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST

SHOW PROCESSLIST

9.23. Таблица INFORMATION_SCHEMA REFERENTIAL_CONSTRAINTS

Таблица REFERENTIAL_CONSTRAINTS обеспечивает информацию относительно внешних ключей.



Примечания:


Таблица REFERENTIAL_CONSTRAINTS была добавлена в MySQL 5.1.10.


TABLE_NAME имеет то же самое значение, что и TABLE_NAME в INFORMATION_SCHEMA.TABLE_CONSTRAINTS.


CONSTRAINT_SCHEMA и CONSTRAINT_NAME идентифицируют внешний ключ.


UNIQUE_CONSTRAINT_SCHEMA и UNIQUE_CONSTRAINT_NAME идентифицируют вызванный ключ.


Единственное допустимое значение в это время для MATCH_OPTION: NONE.


Возможные значения для UPDATE_RULE или DELETE_RULE: CASCADE, SET NULL, SET DEFAULT, RESTRICT, NO ACTION.

9.24. Таблицы INFORMATION_SCHEMA GLOBAL_STATUS и SESSION_STATUS

Таблицы GLOBAL_STATUS и SESSION_STATUS обеспечивают информацию относительно переменных состояния сервера. Их содержание соответствует информации, произведенной инструкциями SHOW GLOBAL STATUS и SHOW SESSION STATUS.


INFORMATION_SCHEMA

Name

SHOW

Name

Remarks

VARIABLE_NAMEVariable_nameVARIABLE_VALUEValue


Примечания:


Таблицы GLOBAL_STATUS и SESSION_STATUS были добавлены в MySQL 5.1.12.


Столбец VARIABLE_VALUE имеет тип BIGINT. Немногие переменные состояния, которые имеют значения нецелого числа, приведены к значениям BIGINT.

9.25. Таблицы INFORMATION_SCHEMA GLOBAL_VARIABLES и SESSION_VARIABLES

Таблицы GLOBAL_VARIABLES и SESSION_VARIABLES обеспечивают информацию относительно переменных состояния сервера. Их содержание соответствует информации, произведенной инструкциями SHOW GLOBAL VARIABLES и SHOW SESSION VARIABLES.


INFORMATION_SCHEMA

Name

SHOW

Name

Remarks

VARIABLE_NAMEVariable_nameVARIABLE_VALUEValue


Примечания:


Таблицы GLOBAL_VARIABLES и SESSION_VARIABLES были добавлены в MySQL 5.1.12.

9.26. Другие таблицы INFORMATION_SCHEMA

Авторы предполагают выполнять дополнительные таблицы в INFORMATION_SCHEMA. В частности, они подтверждают потребность в таблице PARAMETERS.

9.27. Расширения инструкции SHOW

Некоторые расширения к инструкциям SHOW сопровождают реализацию INFORMATION_SCHEMA:


SHOW может использоваться, чтобы получить информацию относительно структуры INFORMATION_SCHEMA.


Несколько инструкций SHOW принимают предложение WHERE, которое обеспечивает большее количество гибкости в определении того, которые строки отобразить.

INFORMATION_SCHEMA информационная база данных, так что имя включено в вывод из SHOW DATABASES. Точно так же SHOW TABLES может использоваться с INFORMATION_SCHEMA, чтобы получить список таблиц:


mysql> SHOW TABLES FROM INFORMATION_SCHEMA;

+---------------------------------------+

| Tables_in_information_schema |

+---------------------------------------+

| CHARACTER_SETS |

| COLLATIONS |

| COLLATION_CHARACTER_SET_APPLICABILITY |

| COLUMNS |

| COLUMN_PRIVILEGES |

| ENGINES |

| EVENTS |

| FILES |

| KEY_COLUMN_USAGE |

| PARTITIONS |

| PLUGINS |

| PROCESSLIST |

| ROUTINES |

| SCHEMATA |

| SCHEMA_PRIVILEGES |

| STATISTICS |

| TABLES |

| TABLE_CONSTRAINTS |

| TABLE_PRIVILEGES |

| TRIGGERS |

| USER_PRIVILEGES |

| VIEWS |

+---------------------------------------+

22 rows in set (0.04 sec)


SHOW COLUMNS и DESCRIBE могут отображать информацию относительно столбцов в индивидуальных таблицах INFORMATION_SCHEMA.

Несколько инструкций SHOW были расширены, чтобы позволить предложение WHERE:


SHOW CHARACTER SET

SHOW COLLATION

SHOW COLUMNS

SHOW DATABASES

SHOW FUNCTION STATUS

SHOW KEYS

SHOW OPEN TABLES

SHOW PROCEDURE STATUS

SHOW STATUS

SHOW TABLE STATUS

SHOW TABLES

SHOW VARIABLES


Предложение WHERE, если представлено, оценено для имен столбцов, отображаемых инструкцией SHOW. Например, инструкция SHOW CHARACTER SET производит эти столбцы вывода:


mysql> SHOW CHARACTER SET;

+----------+-----------------------------+---------------------+--------+

| Charset | Description | Default collation | Maxlen |

+----------+-----------------------------+---------------------+--------+

| big5 | Big5 Traditional Chinese | big5_chinese_ci | 2 |

| dec8 | DEC West European | dec8_swedish_ci | 1 |

| cp850 | DOS West European | cp850_general_ci | 1 |

| hp8 | HP West European | hp8_english_ci | 1 |

| koi8r | KOI8-R Relcom Russian | koi8r_general_ci | 1 |

| latin1 | cp1252 West European | latin1_swedish_ci | 1 |

| latin2 | ISO 8859-2 Central European | latin2_general_ci | 1 |


Используя предложение WHERE с SHOW CHARACTER SET, Вы обратились бы к тем именам столбца. Например, следующий оператор отображает информацию относительно наборов символов, для которых заданное по умолчанию объединение содержит строку 'japanese':


mysql> SHOW CHARACTER SET WHERE `Default collation` LIKE '%japanese%';

+---------+---------------------------+---------------------+--------+

| Charset | Description | Default collation | Maxlen |

+---------+---------------------------+---------------------+--------+

| ujis | EUC-JP Japanese | ujis_japanese_ci | 3 |

| sjis | Shift-JIS Japanese | sjis_japanese_ci | 2 |

| cp932 | SJIS for Windows Japanese | cp932_japanese_ci | 2 |

| eucjpms | UJIS for Windows Japanese | eucjpms_japanese_ci | 3 |

+---------+---------------------------+---------------------+--------+


Эта инструкция отображает многобайтовые наборы символов:


mysql> SHOW CHARACTER SET WHERE Maxlen > 1;

+---------+---------------------------+---------------------+--------+

| Charset | Description | Default collation | Maxlen |

+---------+---------------------------+---------------------+--------+

| big5 | Big5 Traditional Chinese | big5_chinese_ci | 2 |

| ujis | EUC-JP Japanese | ujis_japanese_ci | 3 |

| sjis | Shift-JIS Japanese | sjis_japanese_ci | 2 |

| euckr | EUC-KR Korean | euckr_korean_ci | 2 |

| gb2312 | GB2312 Simplified Chinese | gb2312_chinese_ci | 2 |

| gbk | GBK Simplified Chinese | gbk_chinese_ci | 2 |

| utf8 | UTF-8 Unicode | utf8_general_ci | 3 |

| ucs2 | UCS-2 Unicode | ucs2_general_ci | 2 |

| cp932 | SJIS for Windows Japanese | cp932_japanese_ci | 2 |

| eucjpms | UJIS for Windows Japanese | eucjpms_japanese_ci | 3 |

+---------+---------------------------+---------------------+--------+

9.28. MySQL 5 FAQ INFORMATION_SCHEMA

9.28.1: Имеется ли форум для обсуждения INFORMATION_SCHEMA?

Да. http://forums.mysql.com/list.php?101.


9.28.2: Где я могу найти спецификацию ANSI SQL 2003 для INFORMATION_SCHEMA?

К сожалению, официальные спецификации недоступны свободно. ANSI делает их доступными только за денежку. Однако, имеются доступные книги, например, SQL-99 Complete, Really by Peter Gulutzan and Trudy Pelzer, которые дают всесторонний краткий обзор стандарта, включая INFORMATION_SCHEMA.


9.28.3: Каково различие между Oracle Data Dictionary и MySQL INFORMATION_SCHEMA?

Oracle и MySQL обеспечивают метаданные в таблицах. Однако, Oracle и MySQL используют различные имена таблиц и столбцов. Реализация MySQL более подобна DB2 и SQL Server, которые также поддерживают INFORMATION_SCHEMA как определено в стандарте SQL.


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

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

Глава 10. Поддержка наборов символов

MySQL включает поддержку набора символов, которая дает возможность Вам сохранить данные, использующие ряд наборов символов и выполнять сравнения согласно ряду объединений. Вы можете определять наборы символов на уровне сервера, базы данных, таблицы и столбца. MySQL поддерживает использование наборов символов для типов хранения MyISAM, MEMORY, NDBCluster и InnoDB.


Эта глава обсуждает следующие темы


Что является наборами символов и объединениями?

Перейти на страницу:
Прокомментировать
Подтвердите что вы не робот:*