Ответ, когда запрос находится в очереди, но это не обязательно правильно, когда делается запрос, так как запрос поставлен в очередь после того, как поток для таблицы устанавливается если его еще нет.
От mysql 5.1 dev docs:
Нити выполняет оператор, но вместо написания строки в таблицу INSERT , он помещает копию окончательной строки в очередь, которая управляется поток обработчика. Любые ошибки синтаксиса замечены потоком и сообщаются клиенту .
Порядок событий, когда задержанный оператор выполняет:
- обработчик нити для таблицы создается, если есть не один уже
- обработчик проверяет для или ожидает получить
DELAYED
блокировка
- обработчик выполняет
INSERT
и поставить финальную строку в очередь
- , когда строка фактически вставлена, бинарный журнал обновляется
- обработчик пишет
delayed_insert_limit
строк в то время и выполняет любой очереди SELECTS
между операциями записи
- , когда очередь пуста,
DELAYED
блокировка снимается
В зависимости от того, должен ли поток должен быть создан или нет, и как требуется много времени для проверки или получения блокировки DELAYED
, время между выполнением оператора (шаг 0) и исполнением инструкции (шаг 3) будет отличаться. Затем, в зависимости от того, насколько велика очередь (особенно если она превышает delayed_insert_limit
строк), и произойдет ли ожидающий SELECTS
, запись будет отложена на некоторое непредсказуемое количество времени.
Я думаю, что вы правы (но не уверены). Потому что, если поток * выполняет * инструкцию для * report * синтаксических ошибок, если они есть, вероятно, также будет «расширять» CURRENT_TIMESTAMP до фактической метки времени. – 2010-12-10 16:41:24