Spec-Zone.ru › MariaDB

HIGH_PRIORITY и LOW_PRIORITY

Двигатель хранения InnoDB использует блокировку на уровне строк для обеспечения целостности данных. Однако некоторые двигатели хранения (такие как MEMORY, MyISAM, Aria и MERGE) блокируют всю таблицу, чтобы предотвратить конфликты. Эти двигатели хранения используют две отдельные очереди для запоминания ожидающих операторов; одна для SELECT, а другая — для операторов записи (INSERT, DELETE, UPDATE). По умолчанию последняя имеет более высокий приоритет.

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

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

Если операторы записи имеют более высокий приоритет (по умолчанию), приоритет отдельных операторов записи (INSERT, REPLACE, UPDATE, DELETE) может быть изменён с помощью атрибута LOW_PRIORITY, а приоритет оператора SELECT может быть повышен с помощью атрибута HIGH_PRIORITY. Также LOCK TABLES поддерживает атрибут LOW_PRIORITY для блокировок WRITE.

Если операторы чтения имеют более высокий приоритет, приоритет оператора INSERT может быть изменён с помощью атрибута HIGH_PRIORITY. Однако приоритет других операторов записи не может быть повышен индивидуально.

Использование LOW_PRIORITY или HIGH_PRIORITY для INSERT предотвращает использование одновременных вставок Concurrent Inserts.

См. также

  • INSERT
  • INSERT DELAYED
  • INSERT SELECT
  • Concurrent Inserts
  • INSERT - Default & Duplicate Values
  • INSERT IGNORE
  • INSERT ON DUPLICATE KEY UPDATE
Содержание, воспроизведенное на этом сайте, является собственностью соответствующих владельцев, и это содержание не проверяется заранее компанией MariaDB. Мнения, информация и мнения, выраженные в этом содержании, не обязательно отражают точку зрения MariaDB или любой другой стороны.

© 2023 MariaDB
Licensed under the Creative Commons Attribution 3.0 Unported License and the GNU Free Documentation License.
https://mariadb.com/kb/en/high_priority-and-low_priority-clauses/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API