标签:mysql存储引擎特点 mysql存储引擎比较 mysql存储引擎选择
Mysql官方存储引擎比较常见的存储引擎有:Innodb、MyISAM、Memory、Archive、NDB、BDB,第三方比较有名的:TokuDB、Infobright、InnfiniDB、XtraDB(Innodb增强版本)
官方存储引擎的特点对比
特性 | MyISAM | InnoDB | Memory | Archive | NDB | BDB |
---|---|---|---|---|---|---|
存储限制 | No | 64TB | Yes | No | Yes | No |
事务 | √ | √ | ||||
MVCC | √ | √ | √ | |||
锁粒度 | Table | Row | Table | Row | Row | Page |
B树索引 | √ | √ | √ | √ | √ | |
哈希索引 | √ | √ | √ | |||
全文索引 | √ | 5.6支持e文 | ||||
集群索引 | √ | |||||
数据缓存 | √ | √ | √ | |||
索引缓存 | √ | √ | √ | √ | ||
数据压缩 | √ | √ | ||||
批量插入 | 高 | 相对低 | 高 | 非常高 | 高 | 高 |
内存消耗 | 低 | 高 | 中 | 低 | 高 | 低 |
外键支持 | √ | |||||
复制支持 | √ | √ | √ | √ | √ | √ |
查询缓存 | √ | √ | √ | √ | √ | √ |
备份恢复 | √ | √ | √ | √ | √ | √ |
集群支持 | √ |
TokuDB:支持数据压缩,支持高速写入的一个引擎,但是不适合update多的场景
Infobright/InfiniDB:基于列存储的引擎,适用于OLAP环境,Infobright社区版只支持load data操作
选择存储引擎及建议:根据不同的业务去选择适合业务的存储引擎,MySQL的存储引擎很多,不同的库,不同的表都支持选择不同的存储引擎,推荐同一个库用同一种存储引擎,因为不同存储引擎的表之间join操作比较慢
常用推荐:Innodb,非特殊的场景,Innodb存储引擎一般都可以满足需求
如果有大数据写入批量读取操作:TokuDB
针对OLAP可以考虑使用InfiniDB/Infobright
如果针对数据量小要求速度快,无持久化要求:Memory
尽量不要选择MyISAM存储引擎:因为MyISAM存储引擎只能用的单个CPU,内存只能用到4个G,内存里只有索引,而且并发能力差
本文出自 “小鱼的博客” 博客,请务必保留此出处http://395469372.blog.51cto.com/1150982/1726147
标签:mysql存储引擎特点 mysql存储引擎比较 mysql存储引擎选择
原文地址:http://395469372.blog.51cto.com/1150982/1726147