注册 | 登陆
您的位置:阿里西西 > 编程技术 > 数据库教程 > 详细内容

MySQL数据库底层架构与历史讲解

  稿源:互联网   2018-09-05 23:36:43   点击:   撤稿纠错
回顾MySQL历史背景、基准测试,通过简化细节和演示案例来讨论MySQL的原理

以下讨论的是和MySQL 数据库 底层 架构 历史相关的MySQL数据库底层架构与历史讲解 教程文章,内容是本站精心挑选整理的教程,希望对广大的网友给到帮助,下面是详细内容:

前言:

本章概要描述MySQL服务器架构、各种存储引擎间的主要区别及区别的重要性

回顾MySQL历史背景、基准测试,通过简化细节和演示案例来讨论MySQL的原理

正文:

MySQL架构可在多种不同场景中应用,可嵌入到应用程序中农,支持数据仓库、内容索引、部署软件、高可用冗余系统、在线事务处理系统等;

MySQL最重要的特性是他的存储引擎架构,使得查询处理及其他系统任务和数据存储、提取分离;

1.1MySQL逻辑架构

1.png

1.2并发控制

锁粒度:

锁策略:在锁开销和数据安全性间寻求平衡,每个存储引擎可实现指定锁策略和粒度

表锁:table lock 最基本的 开销最小 锁定整表

行级锁:row lock 最大程度支持并发 最大的锁开销 在存储引擎层(以自己的方式)实现

1.3事务

独立工作单元,一组原子性SQL查询

隔离级别:

四种,每种规定了事务中所作的修改,较低的隔离可以执行更高的并发、开销也更低

READ UNCOMMITTED未提交读

事务中的修改及时没有提交,对其他事务也是可见的;事务读取未提交的数据:脏读;很少使用

READ COMMITTED提交读

almost库默认隔离级别,非MySQL;事务从开始到结束只看见已提交的事务所作的修改,本身所做的修改对其他事务不可见;不可重复读:两次执行同样的查询,结果可能不一样(其他事务的修改)

REPEATABLE READ可重复读

MySQL默认,解决了脏读,同一事务多次读同样结果;幻读:当某个事务在读取某个范围内的记录时、另一个事务在该范围内插入新的记录,当前事务再次读取该范围记录、幻行

SERIALIZABLE:可串行化

最高,强制事务串行执行,避免幻读问题,读取每行数据时加锁(可导致大量超时和锁争用),很少使用

1.png

死锁

1、两个多个事务在同一个资源上相互占用并请求锁定对方占用的资源;

2、多个事务试图以不同的顺序锁定资源,可能产生死锁;

3、多个事务同时锁定同一个资源;


关于MySQL数据库底层架构与历史讲解的内容写到这里就结束啦,您可以收藏本页网址http://www.alixixi.com/biancheng/ a/2018090595908.shtml方便下次再访问哦。