首页 > 数据库 > MySQL > 正文

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

2024-07-24 12:57:11
字体:
来源:转载
供稿:网友
回顾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、多个事务同时锁定同一个资源;


End. 教程到这里讲完了,阅读是否有所收获呢?本站还提供有MySQL 数据库 底层 架构 历史 相关的内容,欢迎继续阅读。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表