什么是存储引擎?
- MySQL中的数据用各种不同的技术存储在文件(或者内存)中,这些技术中的每一种技术都是用不同的存储机制,索引技巧,锁定水平并且最终提供广泛的不同的功能和能力,通过选择不同的技术,你能够获得额外的速度或者功能,从而改善你的应用的整体功能
- 不同的存储引擎性能是不一样的
分类
MYISAM
- 不支持事务,也不支持外键,访问速度快,对事务完整性没有要求或者以SELECT, INSERT为主的应用基本都可以使用这个引擎来创建表
每个MylSAM在磁盘上存储成三个文件,其中文件名和表 .
- .frm(存储表定义)
- MYD(MYData, 存储数据)
- MYI(MYIndex, 存储索引)
INNODB
- 提供了具有提交,回滚,崩溃恢复能力的事务安全,但是比MylSAM 处理效率差一些,占用更多的磁盘空间以保留数据和索引
MEMORY
- 使用内存中的内容来创建表,每一个MEMORY表实际对应一个磁盘文件,格式是.frm, 重新进入之后,数据就消失了。存储临时数据
- 访问速度快,默认使用HASH索引,一旦服务器关闭,表中的数据就会丢失,表还会继续存在