查询缓存(内存)→语法检查→语义检查→调用不同模块处理,如查询优化→根据接口调用存储引擎
可以使用show profiles查看SQL执行流程
MySQL采用的是插件式引擎架构,将查询和其他事务分开
MySQL内存有三个缓冲区
1.查询缓存:存放常用不修改的SQL,注意:select * from user;与Select * from user;会被理解成不一样 ;
2.数据缓存:存放一些数据
3.日志缓存:存放日志
数据库引擎:对数据的创建,检索,修改,删除
MYISM引擎:
1.格式文件.frm 数据文件.myd 索引文件 .myi
2.可压缩成只读文件,占用空间小
InnoDB引擎:
1.以.frm格式表示
2.InnoDB用于存储表的内容
3.提供一组用来记录事务活动的日志文件
4.支持COMMIT,SAVEPOINT以及ROLLBACK等日志
5.提供全ACID兼容
6.MySQL服务器崩溃了自动恢复
7.多版本并发控制(MVCC)以及行锁
8.支持外键及引用删除,包括级联删除和更新
9.是mysql的默认引擎
修改引擎:ALTER TABLE t ENGINE = INNODB;
比较:MYISM引擎更注重空间,但是每个操作都会触发表锁,不适合高并发
但是InnoDB有表锁,更注意效率