В моем приложении много зависимостей от внешнего ключа, и я часто вставляю большое количество строк. То, что я делал до сих пор, запускал одну вставку за раз и записывал идентификатор вставки. Это обычно занимает много времени при вставке большого количества строк, даже если apache и mysql запущены на одном сервере.
Мой вопрос: если бы я изменил свое приложение, чтобы добавить несколько строк с помощью одного INSERT, смог бы я принять идентификаторы каждой строки строго на основе последнего идентификатора вставки, возвращенного соединением mysql? Проблема в том, что иногда возникают ситуации, когда несколько человек одновременно помещают в базу данных большие объемы информации.
Из того, что мне удалось определить, кажется безопасным предположить, что когда вы вставляете 500 строк, ваши идентификаторы вставки будут варьироваться от (lastInsertID )до (lastInsertID+499 ),независимо от того, начался или закончился запрос из другого подключения за время, которое потребовалось для его завершения, но я хочу быть уверен, что это принято как безопасная практика.
В основном я использую InnoDB, но иногда там также есть MyISAM.
Спасибо всем!
-Джер