note:
-当一个事务开启后,如果调用了提交或者回滚,则代表当前事务结束;
-如果会话(客户端和数据的连接断开后)关闭,则需要再次设置关闭自动提交会话,开始事务
明了本质:锁、事务隔离等也是数据库自身集成的机制!
-实际业务需求,自然开发出来的机制!----IT行业的本质:需求驱动,然后理论后行;前沿领域的创新必然规律!
-Elon Musk这种,在中国是少数,或者顶尖中顶尖,需要天时地利人和,以及其自身修为达到!
事务机制
【1】回滚、提交对查询不生效。但是事务中可以有查询。
【2】四种隔离级别不允许情况:
-Read Uncommitted:极不安全,脏读问题出现[未提交或者回滚可见]
-Read Committed:解决脏读。【但对于其他事务前后读取数据会出现不一致情况】——不可重复读问题
-Reapeatable Read:可重复读。【需要查询处于事务当中,才可以解决不可重复读问题】——但是不可解决幻读【当前事务提交后,另外事务查询条数前后不一致】
-Seriablizable:DML均不可操作。保障前后查询结果【条数、结果都一致】
数据库锁机制
【1】共享锁:可以读,不可以改。【解决可重复读问题】
【2】间隙锁:解决幻读问题。
【3】排他锁:其他持锁事务既不能查,也不能改。
==============
索引项上:行锁;否则为表锁。
意向锁:对数据行加索——共享锁和排他锁。是InnoDBshu局操作之前自动加的,不需要用户干预。
===================范围查询==================
【1】临建锁
当 SQL 执行按照索引进行数据的检索时,查询条件为范围查找(between and、<、>等)并有数据命中,则此时 SQL 语句加上的锁为 Next-key locks,锁住索引的记录 + 区间。
【2】间隙锁
在范围查询时,没有命中的。
=================
事务修改修改数据,默认该行持锁。