最近开始看高性能Mysql一书。当然800多页的数没有打算按照顺序去看,但是想到自己并没有特别了解Mysql,所以还是希望把第一章架构与历史这些内容看下。
Mysql逻辑架构
如果能在脑中有个Mysql各组件如何协同工作的架构图,这会很有助于我们了解Mysql服务器。

最上层连接/线程处理这里,处理连接、授权和安全。
第二层是解析器、查询缓存、优化器这三部分。处理查询解析、分析、优化、缓存以及所有内置函数、所有跨存储引擎的功能(存储过程、触发器、视图)。
第三层就是存储引擎了。服务器通过API与各种存储引擎交互,这些接口屏蔽了不同存储引擎的差异。
另外Mysql还有各方面的特性,包括:执行与优化、并发控制、读写锁、锁粒度(行级锁、表级锁)、显式锁(select… for update)、事务等。
历史
这部分也介绍了写Mysql的历史,我就不发出来了。
现在Mysql和Innodb引擎都是oracle的了。
Mysql的存储引擎
主要的两个是InnoDB、MyISAM。另外还有一些内置引擎:Archive、Blackhole、CSV、Federated、Memory等,还有一些第三方引擎就不列举了。
获取表信息
使用命令show table status like 'tableName' \G获取表的信息。
会出现如下介绍的几列信息。
1.Name
表名称
2.Engine:
表的存储引擎
3.Version:
版本
4.Row_format
行格式。对于MyISAM引擎,这可能是Dynamic,Fixed或Compressed。动态行的行长度可变,例如Varchar或Blob类型字段。固定行是指行长度不变,例如Char和Integer类型字段。
5. Rows
表中的行数。对于非事务性表,这个值是精确的,对于事务性引擎,这个值通常是估算的。
6.Avg_row_length
平均每行包括的字节数
7.Data_length
整个表的数据量(单位:字节)
8.Max_data_length
表可以容纳的最大数据量
9.Index_length
索引占用磁盘的空间大小
10.Data_free
对于MyISAM引擎,标识已分配,但现在未使用的空间,并且包含了已被删除行的空间。
11.Auto_increment
下一个Auto_increment的值
12.Create_time
表的创建时间
13.Update_time
表的最近更新时间
14.Check_time
使用 check table 或myisamchk工具检查表的最近时间
15.Collation
表的默认字符集和字符排序规则
16.Checksum
如果启用,则对整个表的内容计算时的校验和
17.Create_options
指表创建时的其他所有选项
18.Comment
包含了其他额外信息,对于MyISAM引擎,包含了注释徐标新,如果表使用的是innodb引擎 ,将现实表的剩余空间。如果是一个视图,注释里面包含了VIEW字样。
本文原创于赵伊凡BLOG
©原创文章,转载请注明来源: 赵伊凡's Blog
©本文链接地址: 高性能mysql读书笔记1(架构及历史)
“高性能mysql读书笔记1(架构及历史)”的28个回复