Программирование >>  Создание клиентов mysql 

1 ... 67 68 69 [ 70 ] 71 72 73 ... 201


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

DROP FUNCTION

Инструкция DROP FUNCTION удаляет из памяти код функции, загруженной с помощью инструкции CREATE FUNCTION:

DROP FUNCTION имя

DROP INDEX

Инструкция DROP INDEX удаляет индекс таблицы, выполняя для этого инструкцию ALTER TABLE:

DROP INDEX имя ON таблица

DROP TABLE

Инструкция DROP TABLE удаляет все файлы, относящиеся к таблице. Она имеет следующий синтаксис:

DROP TABLE [IF EXISTS ица[, таблиц.. ] [RESTRICT CASCADE]

Спецификация IF EXISTS подавляет вывод сообщения об ошибке, выдаваемого в случае, если заданная таблица не существует. Можно указывать несколько имен таблиц, разделяя их запятыми.

Флаги RESTRICT и CASCADE игнорируются в MySQL версии 3.23. Они предназначены для выполнения сценариев, созданных в других СУБД.

В листинге 13.25 демонстрируется удаление двух таблица sage и log.

DROP TABLE IF EXISTS message, log

EXPLAIN

Инструкция EXPLAIN описывает способ нения указанного запроса или же эмулируетинструкцию DESCRIBEдля заданной таблицы:

EXPLAIN I

В качестве запроса разрешается вводить любую допустимую инструкцию SELECT. В результате будет выдана таблица с описанием индексов, используемых для выполнения операции объединения. Благодаря этому можно узнать, влияют ли индексы на повышение производительности объединений. Подробнее об оптимизации запросов рассказывается в главе 26, Оптимизация . В листинге 13.26 показаны типичные результаты, выдаваемые инструкцией EXPLAIN.



mysql> EXPLAIN

-> SELECT *

-> FROM user, db

-> WHERE user.Host = db.Host;

i table I type i possible keys key key len I ref I rows t Extra I

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

I user I ALL I PRIMARY NULL I NULL I NULL I 5 I 1

1 db I ALL I PRIMARY NULL NULL NULL 2 I where used I

2 rows in set (0.16 sec)

Таблица, возвращаемая инструкцией EXPLAIN, содержит одну строку для каждой таблицы в порядке их упоминания. В первой колонке приводится имя таблицы, во второй-типобъединения. Возможныследующиетипы: ALL, const, eq ref .index, range, ref, system.

Тип ALL означает полное сканирование таблиц:. Обтчно для такой таблицы требуется индекс.

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

Тип eq ref означает сс1лку по равенству, т.е. для каждой комбинации записей предыдущих таблиц из данной таблицы извлекается одна запись. В большинстве случаев это наилучший тип с точки зрения производительности.

Тип index означает, что сканированию подлежит весь индекс. Это почти так же плохо, как и тип ALL, но чуть быстрее, поскольку количество элементов индекса обычно меньше, чем число записей в таблице.

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

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

В колонке possible keys перечислены индексы, которые могут быть использованы для повышения эффективности запроса. Здесь может стоять NULL.

В колонке key показаны задействованные индексы. Здесь тоже может стоять NULL. В колонке key len сообщается о том, сколько частей составного ключа используется.

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

В колонке Extra приводитсядополнительная информация об объединении. Ключевое слово Distinct говорит о том, что MySQL перестает сканировать записи при обнаружении первого совпадения. Сообщение Not exists означает, что программа оптимизировала левое внешнее пропустив последующие операции сканирования для совпавшей комбинации. Сообщение range checked for each record в1дается, когда



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

ни один из индексов не устроил программу полностью, т.е. на каждом этапе сканирования используются разные индексы. Сообщение Usin sort указывает на необходимость дополнительного прохода для сортировки таблицы результатов. Сообщение Using index означает, что информация о столбцах извлекалась только из индексов, т.е. не понадобилось искать сами записи. Сообщение Using temporary говорит о необходимости создания временной таблицы. Если же в колонке Extra содержится особщение Where used, значит, для отбора записей бтло использовано предложение WHERE.

FLUSH

Инструкция FLUSH очищает внутренние кэш-буферы MySQL, используемые для ускорения запросов. После имени инструкции можно указывать произвольное число имен буферов, разделенных запятыми:

FLUS [, буфер . . .]

Существуют пять очищаемых буферов: HOSTS, LOGS, PRIVILEGES, TABLES и STATUS. Ниже описаны спецификации буферов.

HOSTS

Это кэш имен компьютеров и адресов Internet. Когда компьютер меняет свой IP-адрес, данный буфер нужно очистить. Это также позволит заново установить соединения, которые ранее были отменены из-за превышения лимита ошибок.

LOGS

Очистка данного буфера приводит к закрытию и повторному открытию всех журнальных файлов. Нумерованные файлы получат новые номера.

PRIVILEGES

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

рукции GRANT и REVOKE не требуют очистки буфера.

STATUS

Очистка этого буфера приводит к сбросу большинства значений, сообщаемых инструкцией SHOW TABLE STATUS. Данное действие производит глобальный эффект.

TABLES [имя, ...]

Если после имени TABLES не указан список таблиц, будут закрыты все таблицы, в противном случае - лишь те, что перечислены.

TABLES WITH READ LOCK

Данная спецификация означает закрытие всех таблиц и их блокирование с помощью инструкции LOCK TABLES. Это полезно, когда требуется выполнить резервное копирование всей базы данн1х. Снять блокировки можно с помощью инструкции UNLOCK TABLES.



1 ... 67 68 69 [ 70 ] 71 72 73 ... 201

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика