Php PDO::lastInsertId是否具有快速插入的可靠性?
我使用的是Yii PHP框架,它有一个函数PDO::lastInsertId,这显然只是PDO::lastInsertId的一个实现。如果我的应用程序可以同时从数千个用户中快速插入数据,那么这个函数能够可靠地获取我刚才插入的数据的自动递增的行ID吗 我需要得到我刚刚插入的行的id,以便在插入本身之后做一些工作,但是要确保如果插入率非常高,它不会导致不一致的结果Php PDO::lastInsertId是否具有快速插入的可靠性?,php,mysql,pdo,yii,Php,Mysql,Pdo,Yii,我使用的是Yii PHP框架,它有一个函数PDO::lastInsertId,这显然只是PDO::lastInsertId的一个实现。如果我的应用程序可以同时从数千个用户中快速插入数据,那么这个函数能够可靠地获取我刚才插入的数据的自动递增的行ID吗 我需要得到我刚刚插入的行的id,以便在插入本身之后做一些工作,但是要确保如果插入率非常高,它不会导致不一致的结果 谢谢 当然可以,不用担心,但是您必须确保在insert查询之后询问lastInsertId。在此期间,不应在该连接上执行其他查询,每个P
谢谢 当然可以,不用担心,但是您必须确保在insert查询之后询问lastInsertId。在此期间,不应在该连接上执行其他查询,每个PHP进程必须有单独的连接
此外,如果您认为一个表每秒将有成百上千个插入,考虑不要使用索引或使用最小数量的索引。在MyISAM表的情况下。
在insert查询之后立即进行lastInsertId()调用,我担心的是其他同时进行的用户。默认情况下,PHP进程是否有单独的连接?(我想最具体的是yii?)。谢谢你回复我。>PHP进程默认有单独的连接吗?是的。+1件非常好的服装。也许暂时删除索引可以提高插入速度(我想是吧)。我将索引保持在最小值,在这一点上,我在这个表上只有2个,这两个都是必需的。不过我用的是InnoDB。插入和读取都非常频繁,因此行级锁定比表级锁定更具吸引力。再次感谢@stivlo。