MySQL快速扫描
Architecture
C/S架构,从上到下分三层,Client-> Server-> Engine
Client端:负责发送sql字符串到服务端
Server端:包括接收器、分析器、优化器和执行器
接收器:负责sql语句的接收
分析器:对sql语句进行词法分析
优化器:对sql语句进行优化
执行器:调引擎层接口执行sql
Engine端:包括Innodb和Mysiam存储引擎,还有Memory引擎不常用,我反正没用过
Innodb:mysql默认存储引擎,存储结构B+T
非叶子节点存储键值,叶子节点存储数据,如果是普通索引T,叶子节点存储主键值
相比其它存储结构如B树,红黑树、平衡树等B+T的优势:
存储数据量大,三层B+T可存储千万级别数据
查询减少I/O次数
与Mysiam引擎相比有如下区别:
Innodb
索引类型:聚簇索引,就是索引文件和数据文件放一块
支持表锁、支持行锁、支持外键、支持事务
Mysiam
索引类型:非聚簇索引,索引文件和数据文件不在一起
支持表锁、不支持行锁、不支持外键、不支持