MySQL存储引擎总结

Posted 醉酒的小男人

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL存储引擎总结相关的知识,希望对你有一定的参考价值。

InnoDB

每个InnoDB在磁盘上存储为2个文件:
-.frm --------存储表的定义
-.ibd --------存储数据和索引
-支持事务,支持外键,因此数据的完整性、一致性更高
-支持行级别的锁和表级别的锁
-支持读写并发,写不堵塞读(MVCC)
-特殊的索引存放方式,可以减少IO,提升查询效率
-适合:经常更新的表,存在并发读写或者有事务处理的业务系统
-InnoDB索引的叶子节点直接存放数据,而MYISAM存放地址

MyISAM

每个myisam在磁盘上存储为3个文件,文件名和表名相同:
-.frm -------存储表定义
-.MYD --------MYData,存储数据
-.MYI --------MYIndex,存储索引
-支持表级别的锁(插入和更新会锁表)。不支持事务和外键
-拥有较高的插入(insert)和查询(select)速度
-存储了表的行数(count 速度更快)
-适合:只读之类的数据分析的项目

MEMORY

每个memory表对应1个磁盘文件:
-.frm ------------存储表定义
-MEMORY存储引擎是用保存在内存中的数据来创建表,由于他的数据是存放在内存中的,并且默认使用HASH索引,所以它的访
问速度特别快
-把数据放在内存里面,读写的速度很快,但是数据库重启或者崩溃,数据会全部消失。只适合做临时表

CSV

它的表实际上是带有逗号分隔值的文本文件。csv表允许以csv格式导入或转储数据,以便与读写相同格式的脚本和应用程序
交换数据。因为csv表没有索引,所以通常在正常操作期间将数据保存在innodb表中,并且只在导入或导出阶段使用csv表。
特点:不允许空行,不支持索引。格式通用,可以直接编辑,适合在不同数据库之间导入导出。

Archive

这些紧凑的未索引的表用于存储和检索大量很少引用的历史、存档或安全审计信息。
特点:不支持索引,不支持 update delete

以上是关于MySQL存储引擎总结的主要内容,如果未能解决你的问题,请参考以下文章

mysql性能优化总结

mysql数据库开发重点知识总结

MySQL存储引擎总结

MySQL存储引擎Innodb和MyISAM对比总结

MySQL存储引擎之Myisam和Innodb总结性梳理

MySQL存储引擎之Myisam和Innodb总结性梳理-转