MySQL 架构 - MySQL 存储引擎 -选择合适的引擎

本文讨论了在MySQL应用程序设计中选择合适存储引擎的重要性。介绍了选择引擎时需要考虑的关键因素,包括事务处理、并发性、备份策略、错误恢复及特殊功能需求。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

选择合适的引擎

当设计基于MySQL的应用程序时,要考虑用什么存储引擎来保存数据。如果在设计阶段不考虑这个,你就会在以后的过程中遇到一些困难。你可能发现默认的存储引擎并没有提供一些你需要的功能。如事务管理或者读写的混合需要比MyISAM表锁更好的隔离级别的锁。

 

因为你可以为每个表都设置存储引擎。你必须清晰的知道每张表的用途和存储的数据。考虑这些也可以帮助你对应用有个更好的了解以及潜在的增长数据。

 

有了些信息,就可以开始选择引擎了。

 

 

一些考虑

虽然有很多因素决定了你使用引擎的种类,但总的来说因素就那么几个。下面列出的是应该主要考虑的因素:

 

事物

如果你的引擎需要事物处理,InnoDB是稳定,易于集成,证明是没错的选择。然而,我们更期待和它竞争的引擎出现。

如果不需要事物和能使用主要的查询和插入语句,MyISAM是个很好的选择。一些应用的模块适用于它,如日志。

 

并发

如果最好的满足你的并发性需求取决你的工作量了。如果你仅仅是并发的插入和读取。不管相信与否,MyISAM是最好的了。如果你让这些操作互不干扰,就应该选择一个支持行锁的引擎。

 

备份

有规律的备份也影响表的引擎选择。如果服务器关闭,并且定期的备份,存储引擎很容易处理。如果你需要在线备份并从一个格式转换为另一个。这个选择就不明智了。以后会详细说这部分。

要考虑多引擎所引起的备份和服务器调整的复杂性。

 

错误恢复

如果你有很多数据,你要考虑错误恢复的时间。MyISAM相对于InnoDB非常容易崩溃而且从崩溃中恢复的时间非常慢,这就是为什么有的人即使不使用事务处理也要用InnoDB了。

 

特殊功能

最终,你可能发现有的应用需要依靠一些MySQL存储引擎特殊的功能和优化,举个例子,有的应用程序非常依赖于集群的索引优化。这时候,你只能在InnoDB和solidDB选择了。另一方面,只有MyISAM支持全文索引。如果一个存储引擎遇到了一个或多个苛刻的需求,对于其他并不算是,那么你就要选一个折中的方案或者找到一个好的解决方案。通常你能从看上去不满足你的需求的存储引擎,找到你所需要的。

 

你不必现在决定选择哪个引擎。在剩下的教程中会接着说各个引擎的优点和缺点。以及架构设计的提示。一般来说,现实中的方案比你知道的要多的多。

 

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值