我是一个mysql和数据库的新手。
我有一个简单的问题。我创建了一个表,其中包含一个整数类型的id列,该列是自动递增的。在每次插入后,我会得到最后一行插入的id(在python中使用cursor.lastrowid或connection.insert_id())。我想知道在mysql中获取此值的时间复杂度是多少?
我猜它是O(1),因为数据库应该在某个地方存储这个值,并在每次插入后更新它,对吗?
谢谢。
我是一个mysql和数据库的新手。
我有一个简单的问题。我创建了一个表,其中包含一个整数类型的id列,该列是自动递增的。在每次插入后,我会得到最后一行插入的id(在python中使用cursor.lastrowid或connection.insert_id())。我想知道在mysql中获取此值的时间复杂度是多少?
我猜它是O(1),因为数据库应该在某个地方存储这个值,并在每次插入后更新它,对吗?
谢谢。
cursor.lastrowid
将返回单个插入的值。详情请参见:http://www.python.org/dev/peps/pep-0249/
connection.insert_id()
需要进行单独的调用以获取最后插入的ID,并且速度稍慢。
INSERT
语句创建的LAST_INSERT_ID()
。因此,很可能MySQL为每个会话存储该值。 - ypercubeᵀᴹ