Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

MySQL. Библиотека профессионала - Аткинсон Л

..pdf
Скачиваний:
165
Добавлен:
24.05.2014
Размер:
10.41 Mб
Скачать

242 Глава Инструкции SQL

SQL_SAFE_MODE |

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

SQL_SELECT_LIMIT |

Эта опция ограничивает число записей, возвращаемых запросами на выборку. Предложение LIMIT инструкцииSELECT переопределяетданнуюустановку. По умол чанию может возвращаться неограниченное число записей.

число_позиций

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

TIMESTAMP |

Эта опция задает текущее время сеанса, что бывает полезно при восстановлении измененных записей.

SET TRANSACTION

Инструкция SET TRANSACTION задает уровень изоляции транзакции. Ее формат таков:

SET [GLOBAL | SESSION] TRANSACTION LEVEL

[READ UNCOMMITTED COMMITTED | REPEATABLE READ |

По умолчанию инструкция затрагивает только ближайшую транзакцию. Если ука зан флаг GLOBAL, изменения коснутся всех транзакций, выполняемых на сервере. Флаг обозначает все транзакции данного сеанса.

Уровень изоляции определяет, к каким данным, с которыми работает транзакция, смогут получить доступ другие потоки. В режиме READ UNCOMMITTED транзакция мо жет читать данные из таблиц напрямую, не проверяя, окончательные это данные или нет. Другим потокам разрешено менять содержимое этих таблиц, не дожидаясь за вершения транзакции. Таким образом, в ходе транзакции можно выполнить один и тот же запрос дважды подряд и получить разные результаты.

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

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

Полныйсписок инструкций 243

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

В режиме SERIALIZABLE транзакции принудительно выполняютсядругзадругом, последовательно. Несколько потоков могут начинать транзакции одновременно, но если окажется, что две транзакциипытаются обновить одну и ту же строку, одна из них будет объявлена проигравшей в тупиковой ситуации и отменена. Это наивысший уровень целостности данных.

SHOW COLUMNS

Инструкция

SHOW

COLUMNS возвращает описание столбцов таблицы. Она имеет

следующий синтаксис:

 

SHOW

[FULL]

 

I

FROM

таблица

[FROM

[LIKE шаблон]

Флаг FULL задает выдачу для каждого столбца информации о привилегиях. Пред ложение LIKE позволяет отобрать из таблицы только те столбцы, имена которых со ответствуют указанному шаблону. Синтаксис строки шаблона был описан в главе 10, "Типы данных, переменные и выражения". Аналогичные результаты выдает инструк ция DESCRIBE.

SHOW COLUMNS FROM team;

SHOW CREATE TABLE

Инструкция SHOW CREATE TABLE возвращает описание запроса, который необ ходим для создания указанной таблицы. Синтаксис инструкции таков:

SHOW CREATE TABLE таблица

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

244 Глава Инструкции SQL

SHOW CREATE TABLE

\G

***************************

 

Table:

Create CREATE TABLE

binary NOT NULL default

binary NOT NULL default

binary NOT NULL default

NOT NULL default

NOT NULL default

NOT NULL default

NOT NULL default

NOT NULL default

NOT NULL default

NOT NULL default

NOT NULL default

NOT NULL default

NOT NULL default PRIMARY KEY

KEY

TYPE=MYISAM

1 row in set (0.01 sec)

Инструкция SHOW DATABASES возвращает список баз данных, существующих на сервере:

SHOW DATABASES [LIKE шаблон]

Пример инструкции показан в листинге 13.47. В предложении LIKE задается лон имен баз данных (см. главу 10, "Типы данных, переменные и выражения").

SHOW GRANTS

Инструкция SHOW GRANTS выводит список привилегий, предоставленных задан ному пользователю:

SHOW GRANTS FOR пользователь

Полный список инструкций 245

Имя пользователя можно дополнить именем узла, как показано в листинге 13.48.

SHOW INDEX

Инструкция SHOW INDEX возвращает информацию об индексах таблицы. Ее син таксис таков:

SHOW |

FROM таблица

Результатом этого запроса будет таблица, столбцы которой перечислены в табл. 13.4. Каждый компонент составного индекса будет представлен в таблице результатов дельной строкой.

Столбец

Описание

Table

Имятаблицы

 

Указание на то, допускаются ли дублирующиеся значения

Key_name

Имя индекса

Seq_in_index

Порядковый номер для компонентов составного индекса

 

Индексируемый столбец

Collation

Порядок сортировки

Cardinality

Среднестатистическое количество уникальных элементов

 

индекса

 

Число индексируемых символов в столбце с частичной

 

индексацией

Packed

Признак того, является ли индекс сжатым

Comment

Указание на то, имеет ли индекс тип

246 Глава Инструкции SQL

Инструкция SHOW LOGS возвращает информацию о журнальных файлах:

SHOW [MASTER] LOGS

Таблица результатов содержит три столбца. В столбце отображается путь к файлу, а в столбце Туре — тип файла, например Значение столбца Status деляет статус файла: FREE или IN USE.

Инструкция SHOW PROCESSLIST выдает список соединений с текущей базой данных:

SHOW [FULL] PROCESSLIST

Если текущий пользователь имеет привилегию PROCESS, будет показан список всех соединений, поддерживаемых на сервере. В противном случае учитываются лишь соединения текущего пользователя. Флаг FULL говорит о том, что для каждого соединения необходимо показать полный текст запроса, выполняемого в настоящий момент. По умолчанию отображаются только 100 первых символов запроса.

SHOWSTATUS

Инструкция SHOW STATUS возвращает статистическую информацию о сервере. Ее синтаксис таков:

SHOW [MASTER I SLAVE] STATUS [LIKE шаблон]

Флаги MASTER и SLAVE указывают на то, что информация выдается соответствен но о главном и подчиненном серверах. В предложении LIKE задается шаблон имен выводимых переменных. Список переменных приведен в табл. 13.5.

Переменная

Описание

Aborted_clients

Количество неправильно закрытых соединений

 

Количество неудавшихся попыток подключиться

 

к серверу

Bytes_received

Количество байтов, полученных от клиентов

Bytes_sent

Количество байтов, посланных клиентам

Connections

Количество попыток подключиться к серверу

 

Число временных таблиц, созданных на диске

 

Число временных файлов, созданных демоном

Полный список инструкций 247

Переменная

Описание

 

 

 

Число временных

созданных в памяти

Delayed_errors

Количество инструкций INSERT

вы

 

звавшихкакую тоошибку

 

 

Delayed_insert_threads

Число потоков, в которых выполняются инструк

 

ции INSERT DELAYED

 

 

Delayed_writes

Количество строк, записанных инструкциями

 

INSERT DELAYED

 

 

 

Число инструкций FLUSH

 

 

Handler_delete

Количество удаленных строк

 

 

Количество операций чтения первого элемента

 

любого индекса

 

 

Handler_read_key

Количество операций чтения индексируемых

 

строк

 

 

Handler_read_next

Количество операций чтения следующего эле

 

мента индекса

 

 

Handler_read_prev

Количество операций чтения предыдущего эле

 

мента индекса

 

 

Handler_read_rnd

Количество операций чтения фиксированного

 

элементаиндекса

 

 

Handler_read_rnd_next

Количество операций чтения следующей записи

 

из файла данных

 

 

Handler_update

Число запросов на обновление

 

 

Число запросов на добавление

 

 

Количество используемых блоков в индексном

 

буфере

 

 

 

Количество операций чтения индексных блоков с

 

диска

 

 

 

Количество запросов на чтение индексных бло

 

ков из буфера

 

 

Key_writes

Количество операций записи индексных блоков

 

надиск

 

 

Количество запросов на запись индексных блоков в буфер

248 Глава Инструкции SQL

Переменная

Описание

 

 

Max_used_connections

Максимальное число одновременных соединений

 

Количество строк, которые должны быть записа

 

ны инструкциями INSERT

DELAYED

 

lushed_key_blocks

Количество измененных индексных блоков, ожи

 

дающих записи на диск

 

 

Opened_tables

Число открывавшихся таблиц

 

Open_files

Число открытых файлов

 

 

Open_streams

Число открытых потоков

 

 

Open_tables

Число открытых таблиц

 

 

Questions

Общее число запросов

 

 

ull_j

Число операций объединения, в которых не ис

 

пользовалсяиндекс

 

 

oin

Число операций объединения, в которыхприхо

 

дилось отбирать диапазон строк второй таблицы

Select_range

Число операций объединения, в которых

 

 

дилось отбирать диапазоны строк первой таблицы

Select_range_check

Число операций объединения, в которых не ис

 

пользовался индекс, Но после каждой строки

 

пришлось проверять правильность ключа

Select_scan

Число операций объединения, в которых при

 

шлось сканировать первую таблицу

 

Slave_open_temp_tables

Число временных таблиц, открытых на подчи

 

ненном сервере

 

 

Slave_running

Статус подчиненного сервера

 

 

Число потоков, которые слишком долго запуска

 

лись

 

 

Slow_queries

Число запросов, которые слишком Долго выпол

 

нялись

 

 

 

Число операций слияния, которые пришлось вы

 

полнить при сортировке

 

 

Sort_range

Число операций

в

при

 

шлось создавать диапазоны строк

 

Sort_rows

Число отсортированных строк

 

Полный список инструкций 249

 

Описание

 

Число операций сортировки, в которых при

 

шлось сканировать таблицу

 

Число табличных блокировок, которые были по

 

ставлены немедленно

Table_locks_waited

Число табличных блокировок, которые не были

 

поставлены немедленно

Threads_cached

Число потоков в кэш буфере

Threads_connected

Текущее число соединений

Threads_created

Количество созданных потоков

Threads_running

Количество выполняющихся потоков

Uptime

Количество секунд, прошедших с момента запуска

 

сервера

SHOW TABLE STATUS

Инструкция SHOW TABLE STATUS выводит статусную информацию о таблицах. Ее синтаксис таков:

SHOW TABLE STATUS [FROM

[LIKE шаблон]

В предложении LIKE задается шаблон имен таблиц. Список столбцов возвращае мой таблицы приведен в табл. 13.6. Описание каждой таблицы базы данных занимает одну строку.

Столбец

Описание

 

Следующее значение

Avg_row_length

Средняя длина записи

Check_time

Время последнего выполнения инструкции CHECK TABLE

Comment

Комментарии, указанные при создании таблицы

Create_options

Параметры создания таблицы

 

Время создания таблицы

Data_f

Число выделенных, но неиспользуемых байтов

Data_length

Длина файла данных

250 Глава Инструкции SQL

 

Описание

Index_length

Длина индексного файла

Max_data_length

Максимальная длина файла данных

Name

Имя таблицы

Rows

Число записей в таблице

 

Формат хранения записей: сжатый, динамический или

 

фиксированный

Туре

Тип таблицы

 

Время последнего обновления таблицы

SHOW TABLES

Инструкция SHOW TABLES возвращает список таблиц, существующих в указанной базе данных:

SHOW [OPEN] TABLES [FROM

[LIKE шаблон]

По умолчанию отображаются все таблицы текущей базы данных. Флаг OPEN огра ничивает список только открытыми таблицами. В этом случае во втором столбце ука зывается, сколько раз таблица и использовалась (листинг 13.49).

6 rows in set (0.00 sec)

SHOW VARIABLES

Инструкция SHOW VARIABLES возвращает список серверных переменных:

SHOW VARIABLES [LIKE шаблон]

Подробное описание серверных переменных приведено в табл. 13.7.

Полный списокинструкций 251

 

Описание

 

 

ansi_mode

Будет равна ON, если включен режим ANSI

 

(описан в главе 14, "Утилиты командной

 

строки"при

 

fleMOHamysqld)

back_log

Максимальное

число

необслуженных

 

запросов на подключение

 

Базовый каталог (по умолчанию—

 

local)

 

 

 

Размер кэша для таблиц типа BDB

 

Каталог для таблиц типа BDB (по умол

bdb_logdir

Каталог журнальных файлов для таблиц

 

типаBDB

 

 

er_size

Размер буфера журнальной регистрации

 

для таблиц типа BDB

 

 

Максимальное

число

блокировок для

 

таблиц типа BDB

 

bdb_shared_data

Будет равна ON, если для таблиц типа

 

BDB включен режим совместного ис

 

пользования данных

 

 

Временный каталог для таблиц типа BDB

bdb_version

Версия СУБД Berkeley DB

binlog_cache_size

Размер буфера для двоичного журнала

 

транзакций

 

 

 

Набор символов по умолчанию

 

Поддерживаемые наборы символов

concurrent_insert

Будет равна ON, если для таблиц типа

 

разрешены

одновременные

 

операции вставки

 

connect_timeout

Время простоя, по истечении которого

 

запрос на подключение будет отменен

Каталог табличных данных (по умолча нию— /usr/local/var)