Надежен ли PDO :: lastInsertId с очень быстрыми вставками? - PullRequest
4 голосов
/ 25 сентября 2011

Я использую фреймворк Yii PHP с функцией PDO :: lastInsertId, которая, по-видимому, является просто реализацией PDO :: lastInsertId. Если мое приложение имеет очень быструю вставку от, возможно, тысяч одновременных пользователей, будет ли эта функция надежной для получения автоматически увеличенного идентификатора строки данных, которые я только что вставил?

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

Спасибо!

1 Ответ

12 голосов
/ 25 сентября 2011

Да, конечно, об этом не стоит беспокоиться, но вы должны обязательно задать lastInsertId сразу после запроса вставки.Между тем никакие другие запросы к этому соединению не должны выполняться, каждый процесс PHP должен иметь отдельное соединение.

Также, если вы считаете, что в таблицу будут вставляться сотни или тысячи вставок в секунду, не стоитиспользуйте индексы или используйте минимальное количество индексов.В случае MySQL предпочтение отдается таблицам MyISAM.

...