Преимущества UPDATE LOW_PRIORITY и INSERT DELAYED INTO

Я просматривал код и замечал, что UPDATE LOW_PRIORITY и DELAYED INTO используются для вставки и обновления базы данных. Каково использование этого кода? почему мы должны использовать это?

любые идеи?

Нужно ли использовать его при каждой вставке и обновлении для разных таблиц в одной базе данных?

Ответ 1

При ключевом слове LOW_PRIORITY выполнение UPDATE задерживается до тех пор, пока другие клиенты не будут читать из таблицы. Обычно чтение клиентов приостанавливается до тех пор, пока запрос обновления не будет выполнен. Если вы хотите, чтобы приоритет чтения клиентов превысил запрос на обновление, вы должны использовать LOW_PRIORITY.

Параметр DELAYED для оператора INSERT является расширением MySQL для стандартного SQL, что очень полезно, если у вас есть клиенты, которые не могут или не нуждаются не дожидаться завершения INSERT. Это обычная ситуация, когда вы используете MySQL для ведения журнала, и вы также периодически запускаете инструкции SELECT и UPDATE, которые занимают много времени.

Ответ 2

LOW_PRIORITY, HIGH_PRIORITY и DELAYED полезны только в нескольких циклах. Если у вас нет БОЛЬШОЙ загрузки, они вам не помогут. Если у вас есть, не делайте ничего, что вы не совсем понимаете.

Все эти отпионы работают только с MyISAM, а не с InnoDB, а не с представлениями.

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

LOW_PRIORITY ожидает, пока клиент не обратится к таблице. Но если у вас высокий трафик, вы можете подождать, пока время соединения не закончится... это не то, что вы хотите, я полагаю:)

Также обратите внимание, что DELAYED будет удален в Oracle MySQL 5.7 (но не в MariaDB).

Ответ 3

Если ваши UPDATEs в MySQL требуют интенсивной работы с чтением за 1800 секунд, рекомендуется использовать UPDATE LOW_PRIORITY.

Ответ 4

Это нужно использовать, тогда у вас большая нагрузка на сервер. И теперь, когда некоторые UPDATE или INSERT теперь имеют высокий приоритет, и они могут действовать при загрузке.

Exp. SQL, которые генерируют некоторую статистику или верхнюю часть. Они медленно и не требуют немедленного выполнения.