Skip to main content
 Web开发网 » 数据库教程

Mysql数据库引擎该如何选择?

2021年08月11日6000百度已收录

Mysql作为一款关系型数据库,其中优势之一,便是支持存储引擎可插拔。你可以结合具体的使用场景,来选择特定的存储引擎。比如你可以选择InnoDB或者MyISAM存储引擎。同时由于Mysql是一款开源数据库,你也可以根据Mysql自定义的预留存储引擎接口,自己开发实现新的存储引擎。

Mysql中,不同的存储引擎,都有各自的特点。Mysql数据库存储包括:InnoDB存储引擎、MyISAM存储引擎、NDB存储引擎、Memory存储引擎、Archive存储引擎等。

Mysql数据库引擎该如何选择?  数据库 选择 引擎 如何 Mysql 第1张

01如果需要支持在线事务处理场景,请选择InnoDB存储引擎InnoDB存储引擎最大的特点,便是支持事务,行锁的设计,同时支持外键和MVCC。数据库中的事务表示一段最小可执行SQL逻辑。事务可以包含多个SQL语句,也可以是一个SQL语句组成。

事务执行中,要么全部执行成功,要么全部执行失败。事务的四个特性:原子性(事务是最小执行单位)、一致性(数据状态总是从一个一致性状态到另外一个一致性状态)、隔离性(事务之间是隔离的)、持久性。数据库事务经常会用在金融领域的场景,比如转账等。

所以,如果你的业务场景需要支持事务特性,那么你在使用Mysql时,需要选择InnoDB存储引擎来支持。InnoDB存储引擎目前在很多公司也用的比较广泛,比如Facebook、阿里等。

Mysql数据库引擎该如何选择?  数据库 选择 引擎 如何 Mysql 第2张

02如果需要支持联机分析场景,请选择MyISAM存储引擎MyISAM存储引擎不支持事务,它的最大的一个特点便是支持OLAP(联机分析场景)。公司业务方经常会有这样的需求,需要对数据进行聚合操作,比如对数据进行SUM(求和)、COUNT(计数)等指标类计算,对这部分数据分析,进一步分析数据的价值,为公司上层提供决策支持。此时Mysql数据库可以选择MyISAM存储引擎来支持。

Mysql数据库引擎该如何选择?  数据库 选择 引擎 如何 Mysql 第3张

03如果可以将数据临时放到内存,希望访问数据速度快,可以选择Memory存储引擎。如果需要对数据进行归档,请选择Archive存储引擎Memory存储引擎会将数据存储到内存中,对于内存数据的访问,其速度很快。当然有一个问题,如果我们的数据库发生故障或者奔溃重启时,内存中的数据会全部消失。

所以对于Memory存储引擎,它适用的场景用于存储临时数据的临时表以及数据维表到内存中,也可以使用Memory存储引擎来存储SQL查询中的临时结果表。

对于Archive存储引擎,它非常适用于存储归档的数据,比如存储日志信息,这部分数据没有那么重要,对其进行压缩进一步降低磁盘的存储空间。

Mysql数据库引擎该如何选择?  数据库 选择 引擎 如何 Mysql 第4张

我是Lake,专注大数据技术原理、人工智能、数据库技术、程序员经验分享,如果我的问答对你有帮助的话,希望你能点赞关注我,感谢。

我会持续大数据、数据库方面的内容,如果你有任何问题,也欢迎关注私信我,我会认真解答每一个问题。期待您的关注

评论列表暂无评论
发表评论
微信