1.C/S(客户端/服务端)模型介绍
a.C/S 一般在局域网之间通过专门服务器提供连接和数据交换服务.
b.C/S 一般面向相对固定的用户群, 对信息安全的控制能力很强.
2.连接数据库方式
TCP/IP方式(远程、本地):
mysql -uroot -poldboy123 -h 10.0.0.51 -P3306
Socket方式(仅本地):
mysql -uroot -poldboy123 -S /tmp/mysql.sock
3.mysqld程序结构(三层)
连接层
a.提供链接协议: tcp/ip souket
b.用户信息验证: 用户 密码 IP souket
c.提供专用线程: 接收用户sql,并且返回结果
sql层
a.语法检查
b.语义检查
c.权限检查
d.解析器生成解析树,产生执行计划
e.优化器选出最优的执行计划
f.执行器执行sql语句
g.查询缓存,开启后,连续相同查询语句直接走缓存不走解析(前提文件没改)
h.提供日志记录
存储引擎层
a.根据SQL层执行的结果,从磁盘上拿数据。
b.将16进制的磁盘数据,交由SQL结构化化成表,
c.连接层的专用线程返回给用户
- 表的物理存储结构
MyISAM(一种引擎)的表:
-rw-r----- 1 mysql mysql 10816 Apr 18 11:37 user.frm
-rw-r----- 1 mysql mysql 396 Apr 18 12:20 user.MYD
-rw-r----- 1 mysql mysql 4096 Apr 18 14:48 user.MYI
InnoDB(默认的存储引擎)的表:
-rw-r----- 1 mysql mysql 8636 Apr 18 11:37 time_zone.frm
-rw-r----- 1 mysql mysql 98304 Apr 18 11:37 time_zone.ibd
time_zone.frm:存储列相关信息
time_zone.ibd:数据行+索引
- 表的段、区、页(16k)
页:最小的存储单元(16K)
区:1个或多个连续的页
段:一个表就是一个段,包含一个或多个区