Параллельная вставка нескольких строк в MySQL --Предположение о вставке идентификатора

В моем приложении много зависимостей от внешнего ключа, и я часто вставляю большое количество строк. То, что я делал до сих пор, запускал одну вставку за раз и записывал идентификатор вставки. Это обычно занимает много времени при вставке большого количества строк, даже если apache и mysql запущены на одном сервере.

Мой вопрос: если бы я изменил свое приложение, чтобы добавить несколько строк с помощью одного INSERT, смог бы я принять идентификаторы каждой строки строго на основе последнего идентификатора вставки, возвращенного соединением mysql? Проблема в том, что иногда возникают ситуации, когда несколько человек одновременно помещают в базу данных большие объемы информации.

Из того, что мне удалось определить, кажется безопасным предположить, что когда вы вставляете 500 строк, ваши идентификаторы вставки будут варьироваться от (lastInsertID )до (lastInsertID+499 ),независимо от того, начался или закончился запрос из другого подключения за время, которое потребовалось для его завершения, но я хочу быть уверен, что это принято как безопасная практика.

В основном я использую InnoDB, но иногда там также есть MyISAM.

Спасибо всем!

-Джер

5
задан SuperJer 3 July 2012 в 21:02
поделиться