开发者社区 问答 正文

为什么ob的select_last_id不需要事物就可以返回id,mysql要用事务?有没有老师可以

为什么ob的select_last_id不需要事物就可以返回id,mysql要用事务?有没有老师可以解答

展开
收起
真的很搞笑 2023-04-27 21:45:58 188 分享 版权
来自: OceanBase
1 条回答
写回答
取消 提交回答
  • 值得去的地方都没有捷径

    首先,需要明确一点,OB和MySQL是不同的数据库管理系统,并且具有不同的实现方式和策略。

    在OB中,select_last_id是一个内置的函数,它可以直接返回最新插入行的ID值。OB是一个基于内存的数据库系统,它的特点是速度非常快,具有高效的操作和查询性能。OB内置了各种高级数据结构和算法来管理内存中的数据,因此不需要使用事务,即可返回最新插入行的ID值。

    而MySQL是一个关系型数据库系统,它采用磁盘存储数据。MySQL使用事务可以保证数据的一致性和完整性,即在多个并发访问下,保证数据的正确性。事务可以保证数据在提交之前的操作均执行成功,而在OB中则无需这么做,因为OB基于内存的特性,只涉及单个操作并不需要事务实现多个操作的原子性。

    因此,在MySQL中使用 SELECT LAST_INSERT_ID() 语句获取最新插入行的ID值需要使用事务机制,以保证数据的一致性和完整性的。

    2023-04-29 19:01:35
    赞同 展开评论