博客 > MYSQL知识:MYSQL的逻辑架构和并发控制浅析
浏览量:853次评论:0次
作者:锐成网络整理时间:2024-08-20 17:58:16
Mysql是现在最流行的数据库之一,下面我们来了解下Mysql的逻辑架构是怎么样的以及并发控制的特点。
MYSQL的逻辑架构
Server 层包括连接器、查询缓存、分析器、优化器、执行器等,涵盖 MySQL 的大多数核心服务功能,以及所有的内置函数(如日期、时间、数学和加密函数等),所有跨存储引擎的功能都在这一层实现,比如存储过程、触发器、视图等。
1、连接器
连接器负责跟客户端建立连接、获取权限、维持和管理连接。
2、查询缓存
MySQL 拿到一个查询请求后,会先到查询缓存看看,之前是不是执行过这条语句。
如果在缓存中,则直接返回结果。
如果语句不在查询缓存中,就会继续后面的执行阶段,执行完成后,执行结果会被存入查询缓存中。
3、分析器
分析器先会做“词法分析,语法分析”。
你输入的是由多个字符串和空格组成的一条 SQL 语句,MySQL 需要识别出里面的字符串分别是什么,代表什么。
4、优化器
优化器是在表里面有多个索引的时候,决定使用哪个索引;
或者在一个语句有多表关联(join)的时候,决定各个表的连接顺序。
5、执行器
执行器开始执行语句,将结果集返回给客户端。
存储引擎层负责数据的存储和提取。
其架构模式是插件式的,支持 InnoDB、MyISAM、Memory 等多个存储引擎。
现在最常用的存储引擎是 InnoDB,它从 MySQL 5.5.5 版本开始成为了默认存储引擎。
MYSQL的并发控制
1、读写锁
读锁是共享的,多个客户端同一时间可以读同一个资源,互补干扰。
写锁是是排他的,也就是说一个写锁会阻塞其他的写锁和读锁。
2、锁粒度
表锁,锁定整张表,表锁是server层高的锁,该锁会忽略存储引擎的锁机制。
行级锁,锁定数据行,行级锁只在存储引擎层实现。
3、事务ACID
锁粒度的升级和实现ACID特性都会增加系统的开销。
一个实现了ACID的数据库,相比没有实现ACID的数据库,通常会需要更强的cup处理能力,更大的内存,和更多的磁盘空间。
大家可以根据业务是否需要事务处理,来选择合适的存储引擎。
4、隔离级别
Mysql的InnoDB存储引擎默认的隔离级别的是REPEATABLE READ(可重复读),并且通过间隙锁(next-key locking)策略防止幻读的出现。
间隙锁使得InnoDB不仅仅锁定查询涉及的行,还会对索引中的间隙进行锁定,以防止幻行的插入。
重要声明:本文来自编程我也会,经授权转载,版权归原作者所有,不代表锐成观点,转载的目的在于传递更多知识和信息。
相关文章推荐
2024-08-20 17:58:16
2024-08-19 17:49:29
2024-08-19 10:23:28
2024-08-16 17:06:33
2024-08-15 17:22:55
热门工具
标签选择
阅读排行
我的评论
还未登录?点击登录