Hadoop&Hive——小结




note:

       -当一个事务开启后,如果调用了提交或者回滚,则代表当前事务结束;

       -如果会话(客户端和数据的连接断开后)关闭,则需要再次设置关闭自动提交会话,开始事务

明了本质:锁、事务隔离等也是数据库自身集成的机制!

        -实际业务需求,自然开发出来的机制!----IT行业的本质:需求驱动,然后理论后行;前沿领域的创新必然规律!

        -Elon Musk这种,在中国是少数,或者顶尖中顶尖,需要天时地利人和,以及其自身修为达到!

事务机制

【1】回滚、提交对查询不生效。但是事务中可以有查询。

【2】四种隔离级别不允许情况:

      -Read Uncommitted:极不安全,脏读问题出现[未提交或者回滚可见]

      -Read Committed:解决脏读。【但对于其他事务前后读取数据会出现不一致情况】——不可重复读问题

      -Reapeatable Read:可重复读。【需要查询处于事务当中,才可以解决不可重复读问题】——但是不可解决幻读【当前事务提交后,另外事务查询条数前后不一致】

      -Seriablizable:DML均不可操作。保障前后查询结果【条数、结果都一致】

数据库锁机制

【1】共享锁:可以读,不可以改。【解决可重复读问题】

【2】间隙锁:解决幻读问题。

【3】排他锁:其他持锁事务既不能查,也不能改。

==============

索引项上:行锁;否则为表锁。

意向锁:对数据行加索——共享锁和排他锁。是InnoDBshu局操作之前自动加的,不需要用户干预。

image

===================范围查询==================

【1】临建锁

当 SQL 执行按照索引进行数据的检索时,查询条件为范围查找(between and、<、>等)并有数据命中,则此时 SQL 语句加上的锁为 Next-key locks,锁住索引的记录 + 区间。

【2】间隙锁

在范围查询时,没有命中的。

=================

事务修改修改数据,默认该行持锁。

原文地址:https://www.cnblogs.com/macro-renzhansheng/p/13162823.html