Подтвердить что ты не робот

Использование LIMIT 1 в MySQL

Когда целесообразно добавить LIMIT 1 в конце запроса в MySQL. Обычно я добавляю его в DELETE, но я видел, что он используется с INSERT a и даже UPDATE. Это перебор или хорошая практика?

4b9b3361

Ответ 1

Хорошо, если вы используете EXPLAIN, вы увидите, что он ускоряет работу, так как как только он нашел один результат, он останавливается.

Он также является отказоустойчивым - если вы знаете, что ваша вставка обновления должна влиять только на одну строку, указав ее, вы гарантируете, что она никогда не пойдет не так и испортит несколько строк.

Ответ 2

 INSERT INTO .. VALUES () LIMIT 1

Не существует. Надеюсь, вы знаете, сколько VALUES() вы там положили!

 INSERT INTO .. SELECT ... LIMIT 1

Существует и очень полезен, и отключен от темы, поскольку LIMIT находится на SELECT.

 DELETE ... LIMIT 1
 UPDATE ... LIMIT 1

Чрезвычайно редко полезно. Либо вы знаете свою базу данных достаточно, чтобы быть уверенным, что ваш WHERE соответствует условию UNIQUE, либо нет, и в этом случае вам следует потратить немного больше времени на поиск своей базы данных и изучение SQL.

Но...

 UPDATE jobs SET owner=me WHERE owner IS NULL ORDER BY job_submit_time LIMIT 1

Может быть очень полезно! Это создает почти незанятую очередь заданий, в которой вы можете прийти и выполнить задание из очереди без каких-либо ожиданий, блокировки или разрешения конфликтов. Совершенно отлично.

 DELETE FROM cache ORDER BY last_update_time LIMIT N

Кэш занимает слишком много места? Очистите N самых старых строк...

Ответ 3

Я не могу придумать экземпляр, в котором что-то, что ускоряет запрос и делает его более безопасным в одно и то же время, можно назвать overkill. Я поставлю свой голос в колонке хорошей практики.

Ответ 4

Чрезвычайно редко полезно. Либо вы знаете свою базу данных достаточно, чтобы быть уверенным, что ваш WHERE соответствует условию UNIQUE, либо вы этого не сделаете, и в этом случае вы должны потратить немного больше времени на поиск своей базы данных и изучение SQL

Существуют случаи, когда предел 1 ДЕЙСТВИТЕЛЬНО полезен. Например, таблица без уникального ключа. Если у нас есть пять одинаковых значений, тогда будет действовать ограничение на один.