Mysql数据库引擎该如何选择?
Mysql作为一款关系型数据库,其中优势之一,便是支持存储引擎可插拔 。你可以结合具体的使用场景,来选择特定的存储引擎 。比如你可以选择InnoDB或者MyISAM存储引擎 。同时由于Mysql是一款开源数据库,你也可以根据Mysql自定义的预留存储引擎接口,自己开发实现新的存储引擎 。Mysql中,不同的存储引擎,都有各自的特点 。
Mysql数据库存储包括:InnoDB存储引擎、MyISAM存储引擎、NDB存储引擎、Memory存储引擎、Archive存储引擎等 。01如果需要支持在线事务处理场景,请选择InnoDB存储引擎InnoDB存储引擎最大的特点,便是支持事务,行锁的设计,同时支持外键和MVCC 。数据库中的事务表示一段最小可执行SQL逻辑 。
【一文理解Mysql,MVCC】事务可以包含多个SQL语句,也可以是一个SQL语句组成 。事务执行中,要么全部执行成功,要么全部执行失败 。事务的四个特性:原子性(事务是最小执行单位)、一致性(数据状态总是从一个一致性状态到另外一个一致性状态)、隔离性(事务之间是隔离的)、持久性 。数据库事务经常会用在金融领域的场景,比如转账等 。所以,如果你的业务场景需要支持事务特性,那么你在使用Mysql时,需要选择InnoDB存储引擎来支持 。
InnoDB存储引擎目前在很多公司也用的比较广泛,比如Facebook、阿里等 。02如果需要支持联机分析场景,请选择MyISAM存储引擎MyISAM存储引擎不支持事务,它的最大的一个特点便是支持OLAP(联机分析场景) 。公司业务方经常会有这样的需求,需要对数据进行聚合操作,比如对数据进行SUM(求和)、COUNT(计数)等指标类计算,对这部分数据分析,进一步分析数据的价值,为公司上层提供决策支持 。
此时Mysql数据库可以选择MyISAM存储引擎来支持 。03如果可以将数据临时放到内存,希望访问数据速度快,可以选择Memory存储引擎 。如果需要对数据进行归档,请选择Archive存储引擎Memory存储引擎会将数据存储到内存中,对于内存数据的访问,其速度很快 。当然有一个问题,如果我们的数据库发生故障或者奔溃重启时,内存中的数据会全部消失 。
所以对于Memory存储引擎,它适用的场景用于存储临时数据的临时表以及数据维表到内存中,也可以使用Memory存储引擎来存储SQL查询中的临时结果表 。对于Archive存储引擎,它非常适用于存储归档的数据,比如存储日志信息,这部分数据没有那么重要,对其进行压缩进一步降低磁盘的存储空间 。我是Lake,专注大数据技术原理、人工智能、数据库技术、程序员经验分享,如果我的问答对你有帮助的话,希望你能点赞关注我,感谢 。
推荐阅读
- 言语理解与表达技巧,怎么可以锻炼人的语言表达能力
- 一文读懂二极管,齐纳二极管
- linux是什么操作系统,一文带你了解Linux是什么
- mysql读写分离,Mysql读写分离
- 哪个与人类情感共鸣,如何理解文学方面的共鸣现象
- 一文读懂遗传算法工作原理,遗传算法代码
- 中国勐海县房价,云南省会昆明房价过万能理解
- 工会有哪些理论视角,纪录片有哪些理论视角
- 如何理解社会主义社会矛盾学说,社会主义市场经济以招商引资为依赖
- 如何防范基差风险,一文读懂基差交易