前言:
本章概要描述MySQL服务器架构、各种存储引擎间的主要区别及区别的重要性
回顾MySQL历史背景、基准测试,通过简化细节和演示案例来讨论MySQL的原理
正文:
MySQL架构可在多种不同场景中应用,可嵌入到应用程序中农,支持数据仓库、内容索引、部署软件、高可用冗余系统、在线事务处理系统等;
MySQL最重要的特性是他的存储引擎架构,使得查询处理及其他系统任务和数据存储、提取分离;
锁策略:在锁开销和数据安全性间寻求平衡,每个存储引擎可实现指定锁策略和粒度
表锁:table lock 最基本的 开销最小 锁定整表
行级锁:row lock 最大程度支持并发 最大的锁开销 在存储引擎层(以自己的方式)实现
独立工作单元,一组原子性SQL查询
四种,每种规定了事务中所作的修改,较低的隔离可以执行更高的并发、开销也更低
READ UNCOMMITTED未提交读
事务中的修改及时没有提交,对其他事务也是可见的;事务读取未提交的数据:脏读;很少使用
READ COMMITTED提交读
almost库默认隔离级别,非MySQL;事务从开始到结束只看见已提交的事务所作的修改,本身所做的修改对其他事务不可见;不可重复读:两次执行同样的查询,结果可能不一样(其他事务的修改)
REPEATABLE READ可重复读
MySQL默认,解决了脏读,同一事务多次读同样结果;幻读:当某个事务在读取某个范围内的记录时、另一个事务在该范围内插入新的记录,当前事务再次读取该范围记录、幻行
SERIALIZABLE:可串行化
最高,强制事务串行执行,避免幻读问题,读取每行数据时加锁(可导致大量超时和锁争用),很少使用
1、两个多个事务在同一个资源上相互占用并请求锁定对方占用的资源;
2、多个事务试图以不同的顺序锁定资源,可能产生死锁;
3、多个事务同时锁定同一个资源;
End. 教程到这里讲完了,阅读是否有所收获呢?本站还提供有MySQL 数据库 底层 架构 历史 相关的内容,欢迎继续阅读。
新闻热点
疑难解答