这是分发环境中的问题!!!
我在许多分发计算机中都有进程,在每个进程中我使用pymysql将多行插入到具有autoincrease id的表中,我希望我能得到每行的ID。
当我在单个节点上执行此操作时,我有解决方案:我只获取表的最大ID并自行设置插入行的ID,但这在分发环境中会失败,因为如果两个进程同时插入,则将获得相同的最大ID,并且将发生碰撞。
我的效率低下,我可以一次插入一行并使用cursor.lastrowid获取该行的id,但这非常慢。
我发现了类似的问题How can I Insert many rows into a MySQL table and return the new IDs? 但在分发环境中这似乎会失败
我想这必须使用分发锁,任何想法?