在MySQL中获取自增行ID的时间复杂度

3

我是一个mysql和数据库的新手。

我有一个简单的问题。我创建了一个表,其中包含一个整数类型的id列,该列是自动递增的。在每次插入后,我会得到最后一行插入的id(在python中使用cursor.lastrowid或connection.insert_id())。我想知道在mysql中获取此值的时间复杂度是多少?

我猜它是O(1),因为数据库应该在某个地方存储这个值,并在每次插入后更新它,对吗?

谢谢。


这是由您会话中最后一个INSERT语句创建的LAST_INSERT_ID()。因此,很可能MySQL为每个会话存储该值。 - ypercubeᵀᴹ
请参考以下Stack Overflow问题:https://dev59.com/4XE85IYBdhLWcg3w6oB0 - Kevin Burton
1个回答

2

cursor.lastrowid将返回单个插入的值。详情请参见:http://www.python.org/dev/peps/pep-0249/

connection.insert_id()需要进行单独的调用以获取最后插入的ID,并且速度稍慢。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接