Если вы хотите, чтобы автоинкрементное значение распределялось между транзакциями с гарантированной уникальностью, у вас должен быть блокируемый синглтон, видимый для всех транзакций, который будет содержать последнее уникальное значение.
В MyISAM
оно сохраняетсяв метаданных таблицы, в InnoDB
, в специальном объекте памяти, заполненном MAX(id)
при первой вставке после запуска сервера.
Конечно, вы можете создавать свои собственные (скажем, выделенную таблицу с однимзапись), но, честно говоря, я не вижу никаких преимуществ по сравнению со встроенной функциональностью в таком решении.