SELECT
HANDLER
INSERT
INSERT DELAYED
UPDATE
DELETE
TRUNCATE
REPLACE
LOAD DATA INFILE
DO
HANDLER
HANDLER tbl_name OPEN [ AS alias ] HANDLER tbl_name READ index_name { = | >= | <= | < } (value1,value2,...) [ WHERE ... ] [LIMIT ... ] HANDLER tbl_name READ index_name { FIRST | NEXT | PREV | LAST } [ WHERE ... ] [LIMIT ... ] HANDLER tbl_name READ { FIRST | NEXT } [ WHERE ... ] [LIMIT ... ] HANDLER tbl_name CLOSE
Оператор HANDLER
обеспечивает прямой доступ к интерфейсу обработчика
таблиц MyISAM
.
Первая форма оператора HANDLER
открывает таблицу, делая ее доступной для
последовательности команд HANDLER ... READ
. Этот объект недоступен другим
потокам и не будет закрыт, пока данный поток не вызовет HANDLER tbl_name
CLOSE
или сам поток не будет уничтожен.
Вторая форма выбирает одну строку (или больше - в соответствии с
установкой в выражении LIMIT
), для которой(ых) указанный индекс
соответствует заданному условию и условие в выражении WHERE
также
выполняется. Если индекс состоит из нескольких частей (охватывает
несколько столбцов), то составляющие его величины указываются в виде
разделенного запятыми списка. Обеспечиваются величины только для
нескольких первых столбцов.
Третья форма выбирает одну строку (или больше - в соответствии с
установкой в выражении LIMIT
), из таблицы; в порядке указания индексов в
соответствии с условием WHERE
.
Четвертая форма (без указания индексов) выбирает одну строку (или больше -
в соответствии с установкой в выражении LIMIT
), из таблицы, используя
естественный порядок строк (как они хранятся в файле данных), в
соответствии с условием WHERE
. Эта форма работает быстрее, чем HANDLER
tbl_name READ index_name
, в тех случаях, когда желателен просмотр всей
таблицы.
Оператор HANDLER ... CLOSE
закрывает таблицу, открытую оператором
HANDLER ... OPEN
.
Оператор HANDLER
представляет собой что-то наподобие низкоуровневой
команды. Например, он не обеспечивает целостности таблицы. Т.е. HANDLER
... OPEN
НЕ делает моментального снимка таблицы и НЕ блокирует ее. Отсюда
следует, что после вызова команды HANDLER ... OPEN
данные таблицы могут
быть модифицированы (этим или любым другим потоком), а сами модификации в
просмотрах таблицы при помощи HANDLER ... NEXT
или HANDLER ... PREV
могут
появляться только частично.
Вот причины, по которым вы можете предпочесть HANDLER вместо обычного SQL:
SELECT
, потому что:
HANDLER open
.
User Comments
Note that the "HANDLER" function does not appear in MySQL 3.23.x, it must be 4.x or something, docs didn't specify.
Handler Syntax works with Innodb tables too.
That is not documented.
Add your own comment.