我正在创建一个应用程序,它将存储围绕某个位置的几个不同比例的(半)实时提要。每个刻度的权重将放在一个只有与刻度一样多的行数的表中。scale应用程序每秒向MySQL数据库提供一个新的权重,PHP web应用程序每3秒读取一次。这看起来不像是很大的流量会对硬盘进行很大的分页,或者差异是否可以忽略不计,但我想知道使用内存/堆表比使用普通的MyISAM表是否更有效率或更有意义。
发布于 2010-08-19 08:05:56
好吧,如果你期待大量的数据,我认为你几乎必须使用MyISAM。如果您将其全部存储在内存表中,则很可能会耗尽内存。更不用说你会在堆引擎断电时丢失所有数据(请记住,根据你的用例,你可能需要这样做)……
发布于 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
发布于 2011-09-07 19:03:57
我知道这个问题已经过时了,您现在可能已经做了一个非常好的解决方案,但我只想向正在阅读本文的人指出,关系数据库可能不是解决此问题的最佳方法。对我来说,这显然是一个平面文件数据库是理想解决方案的情况。只需将这些值写入二进制文件,然后使用简单的数学运算来选择行和字段,就可以节省大量开销。
https://stackoverflow.com/questions/3517449
复制相似问题