首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于大规模更新MySQL表的最佳表引擎。MyISAM还是堆?

用于大规模更新MySQL表的最佳表引擎。MyISAM还是堆?
EN

Stack Overflow用户
提问于 2010-08-19 07:07:15
回答 3查看 1.2K关注 0票数 1

我正在创建一个应用程序,它将存储围绕某个位置的几个不同比例的(半)实时提要。每个刻度的权重将放在一个只有与刻度一样多的行数的表中。scale应用程序每秒向MySQL数据库提供一个新的权重,PHP web应用程序每3秒读取一次。这看起来不像是很大的流量会对硬盘进行很大的分页,或者差异是否可以忽略不计,但我想知道使用内存/堆表比使用普通的MyISAM表是否更有效率或更有意义。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-08-19 08:05:56

好吧,如果你期待大量的数据,我认为你几乎必须使用MyISAM。如果您将其全部存储在内存表中,则很可能会耗尽内存。更不用说你会在堆引擎断电时丢失所有数据(请记住,根据你的用例,你可能需要这样做)……

票数 1
EN

Stack Overflow用户

发布于 2010-08-21 01:36:20

对于100到1000的并发读/写请求(想象一下典型的OLTP使用),innodb的性能无疑要优于myisam。

这不是关于其他人的观察,也不是关于事务/acid支持,而是关于innodb的架构,它远远优于遗留的myisam引擎的架构。

例如,innodb支持聚集主键索引http://dev.mysql.com/doc/refman/5.0/en/innodb-index-types.html

此外,innodb具有行级锁定,在并发负载下的性能远远高于myisam表级锁定。

我可以继续下去,但有人已经提供了一个很好的总结,说明为什么innodb是OLTP的更好选择:http://tag1consulting.com/MySQL_Engines_MyISAM_vs_InnoDB

票数 2
EN

Stack Overflow用户

发布于 2011-09-07 19:03:57

我知道这个问题已经过时了,您现在可能已经做了一个非常好的解决方案,但我只想向正在阅读本文的人指出,关系数据库可能不是解决此问题的最佳方法。对我来说,这显然是一个平面文件数据库是理想解决方案的情况。只需将这些值写入二进制文件,然后使用简单的数学运算来选择行和字段,就可以节省大量开销。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3517449

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档