你好,游客 登录 注册 搜索
背景:
阅读新闻

MySQL各存储引擎特点及选择建议

[日期:2015-12-21] 来源:Linux社区  作者:会说话的鱼 [字体: ]

MySQL官方存储引擎比较常见的存储引擎有:Innodb、MyISAM、Memory、Archive、NDB、BDB,第三方比较有名的:TokuDB、Infobright、InnfiniDB、XtraDB(Innodb增强版本)

官方存储引擎的特点对比

MySQL存储引擎比较
特性MyISAMInnoDBMemoryArchiveNDBBDB
存储限制   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://www.linuxidc.com/Linux/2015-12/126566.htm

linux
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数

       

评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款