MySQL高级第一章——架构介绍
一、简介
是一个经典的RDBMS,目前归属于Oracle
高级MySQL包含的内容:
MySQL内核 SQL优化工程师 MySQL服务器的优化 各种参数常量设定 查询语句优化
主从复制 软硬件升级 容灾备份 SQL编程
二、安装
已抽取为随笔,参见:http://www.cnblogs.com/jiangbei/p/7247814.html
一般而言,生产上下载的是GA(稳定发布版)
三、MySQL的配置文件
大致介绍,混个眼熟,之后会进一步进行讲解
1.在哪配置
2.二进制日志——log-bin
主要是用于:主从复制
3.错误日志——log-error
默认是关闭,记录严重的错误信息以及启动和关闭的信息等
4.查询日志——log
默认也是关闭(均是为了MySQL自身的简洁高效),用于记录查询的sql语句(后期慢日志分析等)
5.数据文件
在哪
Win——F:\Program Files\MySQL\MySQL Server 5.5\data (示例目录)
Linux——默认 /var/lib/mysql
frm文件
存放表结构(例如可以用于直接恢复表结构重新开始)
myd文件
存放表数据
myi文件
存放表索引
也就是说,frm类似于图书馆的架子(表结构),而myd就是架子上的书(表数据),myi就是图书馆书目检索目录(表索引)
四、MySQL逻辑架构
依据之前的开发经验,例如经典的MVC分层架构,controller调service,service调dao,dao查数据库再返回,类似的流程架构在MySQL内部也存在
总体架构图(官方图)
从上往下看:
第一层为连接客户端(由我们熟悉的JDBC即可推导出)
整个下面为服务层(server)
从左往右,从上往下依次为: 工具(备份,容灾恢复等) 连接层(线程/连接) SQL接口(存储过程,视图,触发器等)
分析器(一个漏斗,SQL都是从from处开始解析;进行重组过滤,写的注释等被过滤)
优化器(架构中自带的优化器,例如索引失效的情况,可能是优化器问题)
缓存和缓冲
可插拔组件式存储引擎(主要是前两种 MyISAM与InnoDB)
文件存储算法等
总的架构分为4层:连接层——服务层——引擎层——存储层
更多详细的架构介绍,请参见:http://www.cnblogs.com/andy6/p/5789254.html
优化介绍,请参见:http://blog.csdn.net/fuzhongmin05/article/details/70904190
五、MySQL存储引擎
1.各存储引擎的区别:
主要区别: