首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >选择哪个mysql存储引擎?

选择哪个mysql存储引擎?
EN

Database Administration用户
提问于 2012-05-02 19:27:14
回答 1查看 3.7K关注 0票数 6

我对我应该选择哪个mysql引擎感到困惑(让我们来谈谈最常用的引擎: MyISAM和InnoDB)。

理论上说:

  • 这两种方法都适用于BTree索引,但MyISAM也可以使用全文索引。
  • InnoDB在数据完整性方面更严格,而MyISAM则比较松散。
  • InnoDB有事务,而MyISAM没有。
  • InnoDB有外键和关系限制,而MyISAM没有。
  • MyISAM的阅读速度更快,但编写速度更慢(我对此不太确定)。

当我创建一个表时,如果我想要保持完整性,并且想要加快通过“文本”进行搜索的速度,我应该总是牺牲一些东西吗?

如果您需要的话,您如何决定使用哪个引擎?

  • 正直?
  • 速度?
  • 约束?
  • 通过短信搜索?
  • 交易?
EN

回答 1

Database Administration用户

回答已采纳

发布于 2012-05-02 19:44:16

这两种方法都适用于b树索引,但MyISAM也可以使用全文索引。

MySQL 5.6也应该支持全文索引。当它离开GA的时候寻找它

InnoDB在数据完整性方面更严格,而MyISAM是松散的,InnoDB有事务,而MyISAM没有。InnoDB有外键和关系限制,而MyISAM没有。

考虑到InnoDB通过MVCC支持事务隔离这一事实,这是正确的。这在一定程度上使InnoDB完全兼容

MyISAM读起来更快,但写得更慢(我不确定这个)

这完全取决于MyISAM表的行格式(固定的还是动态的)。慢是相对的。毕竟,针对MyISAM的每个DML语句每次都执行一个完整的表锁。

给定足够大的缓存,InnoDB可以更快地进行读和写,因为提交可能会延迟。这使得已经缓存在InnoDB缓冲池中的数据可以从内存中读取。

InnoDB同时缓存数据和索引,而MyISAM只缓存索引。。因此,磁盘读取来自MyISAM的数据总是必需的。

票数 6
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/17372

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档