我对我应该选择哪个mysql引擎感到困惑(让我们来谈谈最常用的引擎: MyISAM和InnoDB)。
理论上说:
当我创建一个表时,如果我想要保持完整性,并且想要加快通过“文本”进行搜索的速度,我应该总是牺牲一些东西吗?
如果您需要的话,您如何决定使用哪个引擎?
发布于 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的数据总是必需的。
https://dba.stackexchange.com/questions/17372
复制相似问题