Zby*_*nek 6 mysql innodb myisam storage-engine database-recommendation
我有以下问题:我正在设计带有几十个小型查找表的 Web 应用程序:这些表通常包含三列(ID、名称、描述)和几行(大多数少于 50,最大约为 450)。
这些查找表预计很少更改(它们来自标准,几年更改一次)并且仅用于:
SELECT
99% 的情况下,这些表上只会有语句,但会有相当多的语句。
我想知道,使用哪种数据库引擎最有效?
以下是我的考虑:
记忆
- 亲:非常快
- con:如果服务器崩溃,所有数据都丢失,需要重新创建
- con:不支持外键
压缩的 MyISAM
- 亲:快
- con:不支持外键
数据库
- 亲:外键支持
我想问的是,使用与InnoDB不同的东西是否会有显着的优势- 性能方面
谢谢,兹比内克
我在 2011 年 8 月回答了一个类似的问题:哪种 DBMS 适合超快速读取和简单的数据结构?
既然你问的是MySQL以及哪个存储引擎。老实说,这很难说,因为在 SELECT 方面,MyISAM 很少能胜过 InnoDB。
这是我过去关于这一争议的一些帖子
Sep 20, 2011
:MyISAM 和 InnoDB 的优点May 03, 2012
:InnoDB 和 MyISAM 哪个更快?Jul 05, 2012
: InnoDB vs MyISAM 有很多索引Sep 26, 2012
:针对这些项目需求,选择 MyISAM 而不是 InnoDB;和长期选择您现在可能会问:为什么我会偏爱 MyISAM 而不是 InnoDB?
看看这个图表(由 Percona 首席技术官 Vadim Tkachenko 创建)
MyISAM 将缓存索引,并且您的表将有 2 个索引(id 上的主键和 Name 索引)。另一方面,InnoDB 有太多的移动部件需要容纳,特别是当 InnoDB 缓冲池必须定期加载和释放 16K 页时。
公平地说,你应该做一个实验。
ROW_FORMAT=Fixed
(请参阅我的文章What is the Performance Impact of using CHAR vs VARCHAR on a fixed-size field?)并使用较大的key_buffer_size。这将为您的数据集的存储引擎选择提供最佳评估。
归档时间: |
|
查看次数: |
691 次 |
最近记录: |