mysql支持的引擎如下,前面五种引擎是安装mysql自带就会有的
相信绝大数人都和我一样只知道前面两种的引擎,做得久点的运维工程师可能会知道前面五种,最近对mysql进行了研究发现原来还有那么多其他的引擎模式
当然在不同的版本中还有其他的引擎。
1、 InnoDB
2、MyISAM
3、MERGE
4、MEMORY
5、CSV
6、ARCHIVE
7、BLACKHOLE
8、EXAMPLE
9、FEDERATED
10、NDB
11、NDBCLUSTER
InnoDB
优点
最大的特点是支持ACID事务,聚集索引、支持外键、
缺点
不支持全文索引,不保存表行数
MyISAM
优点
全文索引,非聚集索引、查询速度块
缺点
不支持事务、不支持外键
以上两种引擎是用的主流引擎,大家在选择的时候一般都会犹豫,在mysql5.6开始默认引擎就是InnoDB,
总体来说如果存放的不是什么重要数据,需要高效的查询,可以使用MyISAM,一般还是使用InnoDB,大不了在添加redis等cahce技术。
MERGE
MERGE存储引擎把一组MyISAM数据表当做一个逻辑单元来对待,让我们可以同时对他们进行查询。构成一个MERGE数据表结构的各成员MyISAM数据表必须具有完全一样的结构。每一个成员数据表的数据列必须按照同样的顺序定义同样的名字和类型,索引也必须按照同样的顺序和同样的方式定义。
Mysql Merge表的优点:
A. 分离静态的和动态的数据
B. 利用结构接近的的数据来优化查询
C. 查询时可以访问更少的数据
D. 更容易维护大数据集
E. 可以通过修改.mrg文件来修改Merge表,当然也可以用alter进行修改,修改后要通过FLUSH TABLES刷新表缓存,此法可以动态增加减少子表
MEMORY
Memory存储引擎将表的数据存放在内存中
1、能像会话(Session)或缓存(Caching)一样方便操作和管理。
2、充分发挥内存引擎的特点:快速度,低延迟。
3、仅仅读或读为主的訪问模式(不适合频繁写)。
CSV
CSV存储引擎可以将csv文件作为mysql的表进行处理。存储格式就是普通的csv文件
CSV特点
1、以CSV格式进行数据存储(逗号隔开,引号)
2、所有的列必须都是不能为NULL的
3、不支持索引(不适合大表,不适合在线处理)
4、可以对数据文件直接编辑(保存文本文件内容)
ARCHIVE
从名字上我们大概可以明白这个存储引擎的用途,这个存储引擎基本上用于数据归档;
它的压缩比非常的高,存储空间大概是innodb的10-15分之一所以它用来存储历史数据非常的适合,由于它不支持索引同时也不能缓存索引和数据,所以它不适合作为并发访问表的存储引擎。Archivec存储引擎使用行锁来实现高并发插入操作,但是它不支持事务,其设计目标只是提供高速的插入和压缩功能。
BLACKHOLE
黑洞引擎,学习过网路的同学大概听说过黑洞路由,在linux系统中我们接触过/dev/null,这个引擎和这一样,
表不保存数据库,主要作用是如果主被模式slave节点过多,通过BLACKHOLE减轻master的鸭梨
EXAMPLE
这是一个示例引擎,开发人员需要查看的,主要让你了解新的引擎是怎么开发的,让你开发自己的引擎
FEDERATED
主要是用于和远程数据库链接的引擎
NDB
NDBCLUSTER
Mysql 群集使用的引擎
更多具体的说明信息,请参考官方文档地址
https://dev.mysql.com/doc/refman/5.6/en/storage-engines.html
文章末尾固定信息
评论