3.1 mysql中myisam与innodb的区别,至少5点。
a. Innodb支持事务,myisam不支持;
b. Innodb支持行级别锁,myisam不支持;
c. Innodb不能通过直接拷贝表文件的方法拷贝表到另外一台机器,myisam支持;
d. Innodb是索引组织表,myisam是堆表;
e. Innodb表不容易损坏,myisam容易;
f. Innodb表支持多种行格式,myisam不支持;
3.2 请手绘mysql的架构体系
由:连接池组件、管理服务和工具组件、sql接口组件、查询分析器组件、优化器组件、
缓冲组件、插件式存储引擎、物理文件组成。
mysql是独有的插件式体系结构,各个存储引擎有自己的特点。
第一层: client Connector
ODBC、jdbc、api(C/JAVA/PERL/PYTHON/PHP)
第二层:MYSQL server 模块
thread connection pool/cache
sql interface(DDL/ DML/ TRIGGER/ VIEW/STORE PROCEDURE/ EVENT等)
sql parse & check privileges
sql optimize(explian)
server 统计/buffer:query cache
server admin manager command: backuprestore security replicate 等
第三层:存储引擎
myisam/innodb/blackhole/archive/memory/merge/NDB
存储引擎是基于表
第四层:存储引擎相应的文件
logs file:binlog/err/general/slow.server 层维护
myisam: frm/myi/myd
innodb: frm/ibd(index&data)/redolog/Undo log(5.7)
3.3 innodb引擎的4大特性
插入缓冲(insert buffer),
二次写(double write),
自适应哈希索引(ahi),
预读(read ahead)
3.4 MasterThead 原理