您的位置:首页 > 数据库 > MySQL

MySQL存储引擎--存储引擎的选择

2016-03-26 21:36 281 查看


在实际工作中,选择一个合适的存储引擎是一个很复杂的问题。每种存储引擎都有各自的优势,不能笼统的说谁好谁不好。原谅我说了一句废话。


OK,现在我们将对各个存储引擎的特点进行对比,给出不同情况下选择存储引擎的建议。



首先呢,我们来从存储引擎的事务安全,存储限制,空间使用,内存使用,插入数据的速度和对外键的支持这几个角度来做一个比较。




关于上表的解释:

1,InnoDB存储引擎:InnoDB存储引擎支持事务处理,支持外键。同时支持奔溃修复能力和并发控制。

如果需要对事务的完整性要求比较高,要求实现并发控制,那选择InnoDB存储引擎有很大的优势。

如果需要频繁的进行更新,删除操作的数据库,也可以选择InnoDB存储引擎。因为该类存储引擎可以实现事务的提交和回滚。

2,MyISAM存储引擎:MyISAM存储引擎的插入数据快,空间和内存使用比较低。

如果表主要是用于插入新记录和读出记录,那么选择MyISAM存储引擎能实现处理的高效率。

如果应用的完整性,并发性要求很低,也可以选择MyISAM存储引擎。

3,Memory存储引擎:Memory存储引擎的所有数据都在内存中,数据的处理速度非常快,但安全性不高。

如果需要很快的读写速度,对数据的安全性要求较低,可以选择Memory存储引擎。

Memory存储引擎对表的大小有要求,不能建立太大的表。所以,这类数据库值使用与相对较小的数据库表。

这里再来整理一个小的技巧:

上面整理的到选择存储一起拿的这些建议都是根据不同的存储引擎的特点提出的。这些建议方案并不是绝对的,实际应用中还需要根据实际情况来进行分析。当然,同一个数据库中可以使用多种存储引擎的表。
1,如果一个表要求较高的事务处理,可以选择InnoDB。

2,这个数据库中可以将查询要求比较高的表选择MyISAM存储引擎。

3,如果需要该数据库中一个用于查询的临时表,可以选择Memory存储引擎。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: