我正在使用Yii PHP框架,它有一个函数PDO :: lastInsertId,它显然只是PDO :: lastInsertId的一个实现。如果我的应用程序可能有数千个并发用户非常快速地插入,那么这个函数是否可靠获取我刚插入的数据的自动递增行ID?
我需要获取我刚刚插入的行的id,以便在插入本身后执行一些工作,但是要确保如果插入速率非常高,则不会导致不一致的结果。
谢谢!
答案 0 :(得分:12)
是的,当然,不用担心,但是你必须确保在插入查询之后询问lastInsertId。在此期间,不应该对该连接执行任何其他查询,每个PHP进程必须具有单独的连接。
此外,如果您认为某个表每秒会有数百或数千个插入,请考虑不使用索引或使用最少量的索引。如果MySQL支持MyISAM表。