回顾:
acid:dbms在写入或更新资料的过程中,为保证事务正确可靠,具有的四个特性:原子性(不可分割性)、一致性、隔离性(独立性)、持久性
一个事务:一系列数据库操作组成的一个完整的逻辑过程
原子性:一个事务中的所有操作,要么全部完成、要么全部不完成,若发生错误,回滚(rollback)
一致性:事务开始之前和事务结束之后,数据库的完整性没有破坏
隔离性:数据库允许多个并发事务同时对其数据进行读写和修改的能力,隔离性可以防止多个事务并发执行时由于交叉执行而导致数据的不一致。事务隔离分为不同级别:读未提交、读提交、可重复读、串行化
持久性:事务处理结束后,对数据的修改时永久性的,系统出故障也不会改变
锁:协调多个进程或线程并发访问某一资源的一种机制.锁冲突是影响数据库并发访问性能的重要因素。
存储引擎支持不同的锁机制
行锁 | 表锁 | 页锁 | |
myisam | 支持 | ||
bdb | 支持 | 支持 | |
innodb | 支持 | 支持 |
开销、加锁速度、死锁、粒度、并发性能
###根据具体应用决定适合那种锁,仅从锁的角度:表锁适合以查询为主;表锁适合按大量索引条件并发更新少量不同数据,同时又有并发查询的应用
myisam表锁
myisam只支持表锁,随着应用对事务的完整性和并发性要求提高,mysql才开始开发基于事务的存储引擎,而来出来innodb的行锁和bdb的页锁,innodb被oracle收购
先记录到此,后续更新
如对本文有疑问, 点击进行留言回复!!
【java基础】面试常见问题:类和对象,封装继承多态,final关键字,static关键字,类加载过程,双亲委派模型
荐 Java语言基础之JDK1.8新特性(Lambda表达式、函数式接口、Stream流、新的日期API)
网友评论