mysql并发书籍_《高性能MySQL》读书笔记——第一章、MySQL架构与历史

MySQL最重要的特性是数据的处理与存储分离的存储引擎架构。

一、MySQL逻辑架构

1)第一层架构 —— 连接处理、授权认证、安全等。

2)第二层架构 —— MySQL的核心服务功能:存储过程、触发器、视图、查询缓存、查询解析、查询优化、函数等等。

3)第三层架构 —— 实现了不同的存储引擎,存储引擎负责MySQL中数据的存取。

二、并发控制

MySQL多个存储引擎的架构提供了多粒度封锁机制。其中两种最重要的锁策略是:表锁 —— 锁定整张表。存储引擎和MySQL服务器都实现了表锁。

行级锁 —— 锁定元组。InnoDB和XtraDB,以及其他一些存储引擎中都实现了行级锁。行级锁只在存储引擎层实现。

三、事务

在MySQL中,用户可以根据业务是否需要事务处理,来选择合适的存储引擎。对于一些事务的查询类应用,选择一个非事务型的存储引擎,可以获得更高的性能。

3.1、隔离级别

PEREATABLE READ是MYSQL的默认事务隔离级别。

可以在配置文件中设置整个数据库的隔离级别,也可以只改变当前会话的隔离级别:

3.2、死锁

InnoDB目前处理死锁的方法是,将持有最少行级排他锁的事务进行回滚。

3.3、事务日志

事务日志提供了类似缓存的功能,使多次修改的数据可以缓慢刷回磁盘。

同时事务日志也提供了数据库故障恢复的功能。

3.4、MySQL中的事务

InnoDB采用的是两段锁协议。在事务执行过程中,随时都可以执行锁定,锁只有在执行COMMIT或者ROLLBACK的时候才会释放,并且所有的锁是在同一时刻被释放。

四、多版本并发控制

后面更新。。。

五、MySQL的存储引擎

5.1、InnoDB存储引擎

InnoDB采用MVCC来支持高并发,并且实现了四个标准的隔离级别。默认级别是REPEATABLE READ(可重复读),并且通过间隙锁策略防止幻读的出现。

5.2、MyISAM存储引擎

MyISAM提供了大量的特性,包括全文索引、压缩、空间函数(GIS)等,但MyISAM不支持事务和行级锁,而且有一个毫无疑问的缺陷就是崩溃后无法安全恢复。

5.3、选择合适的存储引擎

除非需要用到某些InnoDB不具备的特性,并且没有其他办法可以替代,否则都应该优先选择InnoDB引擎。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值