Как оптимизировать выполнение INSERT запросов в MySQL |
[исправить] |
Для того чтобы INSERT операции не влияли на производительность SELECT запросов
используют конструкции:
"INSERT DELAYED" и "INSERT LOW_PRIORITY" (UPDATE LOW_PRIORITY)
Позволяют отложить включение данных до тех пор, пока не завершаться текущие
операции чтения из базы,
при том, что если накопилось несколько "DELAYED", то данные будут добавлены одним блоком.
При DELAYED управление возвращается сразу, LOW_PRIORITY возвращает управление
только после завершения записи.
Для увеличения скорости выполнения большого числа INSERT/UPDATE/DELETE
рекомендуется группировать несколько операторов в рамках одного лока или транзакции:
LOCK TABLES table WRITE; (BEGIN;)
INSERT'ы ...... (но не много, чтобы не столкнуться с deadlock)
UNLOCK TABLES; (COMMIT;)
|
|
|
|
Раздел: Корень / Программисту и web-разработчику / SQL и базы данных / MySQL специфика / Оптимизация и администрирование MySQL |