MySQL auto_increment против max - PullRequest
       4

MySQL auto_increment против max

2 голосов
/ 04 октября 2009

Хорошо, что быстрее и лучше использовать?

auto_increment

или

Вызовите sql, который делает максимум, а затем добавьте один

Итак, в конечном итоге вопрос заключается в том, следует ли использовать MySQL для этого или сделать это самостоятельно?

Ответы [ 3 ]

4 голосов
/ 04 октября 2009

Определенно автоинкремент. SQL, который вы бы написали, не является поточно-ориентированным и будет применяться только к данным, которые вводятся через вашу хранимую процедуру / sql.

3 голосов
/ 04 октября 2009

auto_increment будет быстрее, чем максимальный агрегат, который должен будет выполнить поиск индекса по меньшей мере или полный просмотр таблицы в худшем случае. Кроме того, max () может не быть поточно-ориентированным, если вы не очень осторожны.

2 голосов
/ 04 октября 2009

Проблема с использованием MAX заключается в уровне изоляции - в лучшем случае есть вероятность завышения значения из-за чтения записей, которые могут быть неправильными. В худшем случае запрос на выбор текущего максимального значения считывает таблицу до того, как произойдет предыдущая вставка, что приводит к коллизии.

Еще одним соображением является необходимость создания собственного генератора идентификаторов и прочего для получения идентификатора, потому что вы не можете использовать LAST_INSERT_ID().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...