💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
InnoDB的关键属性包括: ACID事务特性支持,包括commit,rollback以及crash恢复的能力 行级别锁以及多版本并发控制MVCC 利用主键的聚簇索引(clustered index)在底层存储数据,以提升对主键查询的IO性能 支持外键功能,管理数据的完整性! 2、ACID模型是关系型数据库普遍支持的事务模型,用来保证数据的一致性,其中的ACID分别代表: A:atomicity原子性:事务是一个不可再分割的工作单位,事务中的操作要么都发生,要么都不发生 C:consistency一致性:事务开始之前和事务结束以后,数据库的完整性约束没有被破坏。这是说数据库事务不能破坏关系数据的完整性以及业务逻辑上的一致性 I:isolation独立性:多个事务并发访问时,事务之间是隔离的,一个事务不应该影响其它事务运行效果 D:durability持续性:在事务完成以后,该事务所对数据库所作的更改便持久的保存在数据库之中,并不会被回滚 查看自动提交是否开启: show variables like '%autocommit%'; SET AUTOCOMMIT=0 禁止自动提交 SET AUTOCOMMIT=1 开启自动提交 start transaction; 或者 begin; ####开启事务 commit; ###提交,结束此事务 3、为保证并发操作和回滚操作,InnoDB会将修改前的数据存放在回滚段中。 InnoDB会在数据库的每一行上额外增加三个字段以实现多版本控制,第一个字段是DB_TRX_ID用来存放针对该行最后一次执行insert、update操作的事务ID,而delete操作也会被认为是update,只是会有额外的一位来代表事务为删除操作;第二个字段是DB_ROLL_PTR指针指向回滚段里对应的undo日志记录;第三个字段是DB_ROW_ID代表每一行的行ID。 回滚段中的undo日志记录只有在事务commit提交之后才会被丢弃,为避免回滚段越来越大,要注意及时执行commit命令