在mysql中获取自动递增行ID的时间复杂度

Posted

技术标签:

【中文标题】在mysql中获取自动递增行ID的时间复杂度【英文标题】:time complexity to get auto incremented row id in mysql 【发布时间】:2011-11-03 12:26:07 【问题描述】:

我是 mysql 和数据库的新手。 我有一个简单的问题。我创建了一个表,该表具有一个自动递增的整数类型 id 列。每次插入后,我得到最后一行插入的 id(在 python 中使用 cursor.lastrowid 或 connection.insert_id())。我想知道mysql中获得这个值的时间复杂度是多少? 我猜它的 O(1) 因为数据库应该将此值存储在某处并在每次插入后更新它?

谢谢。

【问题讨论】:

这是由会话的最后一个 INSERT 语句创建的 LAST_INSERT_ID()。所以,MySQL 可能会在某个地方为每个会话存储值。 查看 SO 问题:***.com/questions/2548493/… 【参考方案1】:

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

connection.insert_id() 必须单独调用才能获取 last_insert_id,并且会稍微慢一些

【讨论】:

以上是关于在mysql中获取自动递增行ID的时间复杂度的主要内容,如果未能解决你的问题,请参考以下文章

MySQL假设基于多值插入和第一个ID的自动递增ID

C#获取mysql自动增量值[重复]

Azure 逻辑应用 - MySQL 连接器 - 根据需要插入显示自动递增主键字段的行操作

如果我的主键不自动递增,如何使用 PHP 获取最后插入的 ID

设置mysql数据表列自动递增以及数据行插入操作

在 MySQL 中使用 sequelize 自动递增 id