文档章节

MySQL体系架构

o
 osc_9u8w1dcm
发布于 2018/08/31 14:15
字数 719
阅读 10
收藏 0

行业解决方案、产品招募中!想赚钱就来传!>>>

MySQL体系结构如下图:

 

1.MySQL体系分为两部分:

1.1.MySQL server层

权限判断:判断用户是否有权限访问某库某表的或者表里面某行。

查询缓存:通过query cache进行操作,如果在query cache中则直接返回结果给客户端。线上环境最好把query cache关闭掉将query_cache_size及query_cache_type设置为0即可。5.6之后的MySQL默认是关闭的

解析器:对SQL语句进行解析,判断SQL语句的语法是否正确。

预处理器:解析器无法处理的语义在这里进行处理

优化器:对SQL语句进行改写和相应的优化,并产生执行计划

1.2.存储引擎层

MySQL本身支持的存储引擎还是比较多的,但是目前大多数人用到的还是Innodb和MyISAM,其中MyISAM在MySQL 8.0以后将不在支持。默认的引擎是innodb.

 

2.innodb体系架构

MySQL体系结构中的存储引擎层主要了解innodb,因为它也是目前比较常用的一个存储引擎。

innodb包括三部分内存、进程、磁盘文件

innodb体系结构如下图所示:

2.1.innodb内存结构

innodb的内存结构可以分为SGA(系统全局区)和PGA(程序缓存区)

SGA:

innodb_buffer_pool:用来缓存数据、索引、插入缓冲、数据字典

innodb_log_buffer:事务在内存中的缓冲,即redo log buffer的大小

innodb_addition_mem_pool_size:保存字典信息及其他数据结构的内存池

PGA:

sort_buffer_size:SQL语句在内存中的临时排序

join_buffer_size:表连接使用,用于BKA

read_buffer_size:表顺序扫描的缓存,只能应用于MyISAM表存储引擎

read_rnd_buffer_size:MySQL随机读缓冲区大小,用于做mrr

tmp_table_size:SQL语句在排序或者分组时没有用到索引,就会使用临时表空间

max_heap_table_size:管理heap、memory存储引擎表

2.2innodb的进程

master thread:四个循环,主循环、后台循环、刷新循环、暂停循环,其中主循环分为两种状态1秒和10秒

1s:

刷新日志到磁盘

刷新脏数据到磁盘

执行合并插入缓冲操作

产生checkpoint

删除无用的table cache

如果当前没有用户转入后台循环

10s:

刷新日志到磁盘

刷新脏数据到磁盘

执行合并插入缓冲操作

产生checkpoint

清除无用的undo 页

 

IO_thread:

默认MySQL应该是开启了10个IO_thread,其中4个read_thread,4个write_thread,1个redo_log thread 1个insert buffer thread

redo log buffer负责将日子缓冲中的内容刷新到redo log文件中,insert buffer thread,将插入缓冲中的内容刷新到磁盘,read/write thread是数据度的读写请求线程。

page clean thread:

负责将脏数据刷新到磁盘的线程

purge thread

 负责删除无用undo页

 

o
粉丝 0
博文 500
码字总数 0
作品 0
私信 提问
加载中
请先登录后再评论。
我的架构演化笔记 功能1: 基本的用户注册

“咚咚”,一阵急促的敲门声, 我从睡梦中惊醒,我靠,这才几点,谁这么早, 开门一看,原来我的小表弟放暑假了,来南京玩,顺便说跟我后面学习一个网站是怎么做出来的。 于是有了下面的一段...

强子哥哥
2014/05/31
976
3
数据库代码辅助工具--MaoCaiJun.Database

MaoCaiJun.DataBase 是一个用于 Microsoft Visual Studio 的数据库代码生成组件。它是基于 xml 文件的代码创建工具,支持sql2000,sql2005,sql2008,access, SQLite MaoCaiJun.Database 数据库...

mccj
2013/02/06
2.3K
1
MySQL全文搜索引擎--mysqlcft

MySQL在高并发连接、数据库记录数较多的情况下,SELECT ... WHERE ... LIKE '%...%'的全文搜索方式不仅效率差,而且以通配符%开头作查询时,使用不到索引,需要全表扫描,对数据库的压力也很...

张宴
2012/11/29
1.6W
2
统一数据库访问接口--edbc

edbc 是 Emacs-Lisp Database Connectivity 的缩 写 ,是从 Emacs-CGI 项目中独立出来的一个子项目,为 Emacs Lisp 访问数据库提供简洁、统一的接口! 在其他语言(比如Java)中访问数据库,...

redraiment
2012/12/26
1.6K
0
博客引擎--JellyJolly

JellyJolly是一个以Java和MySQL为平台的自由开源的博客引擎,可以部署在Redhat的Openshift云平台。 目前处于1.0.BETA1版本,有许多地方需要完善:)。 1、演示地址: http://jellyjolly-predat...

zetaplusae
2012/12/29
1.3K
0

没有更多内容

加载失败,请刷新页面

加载更多

以渠道身份为数据背书,悟空榜如何呈现最真实的市场声音?

文 | 曾响铃 来源 | 科技向令说(xiangling0815) 时至今日,电商节已经成为各巨头零售平台例行的活动,花样在不断创新,玩法也在不断涌现。 在这个过程中,伴随电商节的各种品牌、产品销量榜...

曾响铃
前天
3
0
川普宣布拉黑微信支付!腾讯市值一度蒸发5000亿,45天后跟鹅厂发生交易都属违法

郭一璞 发自 凹非寺 量子位 报道 | 公众号 QbitAI 轮到腾讯和微信了。 谁都没想到,川普针对中国企业的举措会进展的这么快,就在刚刚,白宫官方网站po出一条总统行政命令: Executive Order ...

Java旅途
昨天
0
0
图解浏览器安全(同源策略、XSS、CSRF、跨域、HTTPS、安全沙箱等串成糖葫芦)

关注公众号“执鸢者”,获取大量教学视频并进入专业交流群,回复“安全”获取本节思维导图。 一天小林又去面试啦,面试官说:“小林呀,你对浏览器安全了解多少?”。小林摸了摸头说,目前我...

执鸢者
昨天
0
0
《乘风破浪的姐姐》:内容营销研究报告

《乘风破浪的姐姐》节目表现 大盘:同期热播的综艺中,《乘风破浪的姐姐》全面领先 6月12号以来,同期热播的综艺节目《乘风破浪的姐姐》播映指数排名第一,整体热度相对靠前;好评度、观看度等...

OSC_BMKOlH
昨天
0
0
TikTok遭遇十面埋伏的BGM,是美国Z时代人的抗议声 | 一周之最

原本是来中国街头吃吃吃,积累了不少粉丝的老外博主郭杰瑞,不知是不是因为央视的连线,顺应时势地变成了时政UP主,因疫情回到美国后,一直带着口罩在街头做采访,满足中国网友各种好奇。 从...

紫金山科技
前天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部