我有一个程序,每秒从某个来源接收大约20个任意测量值。每个度量都有类型,时间戳,最小值,平均值和最大值。然后,我需要创建每种测量类型的X聚合。
该程序可以同时设置100个源,这导致我需要快速存储并快速检索的大量数据。
这将运行的系统没有内存/存储/ CPU限制,但是那里有另一个服务,它几乎在其功能的极限上写入hdd。对于这个问题,让我们假设这是一个“顶级”HDD,我将无法升级到硬盘。
我现在正在做的是每个测量类型(20x源)生成一个表,并在遇到新测量类型时沿每个测量的时间戳值进行分区。我这样做是为了不在HDD上分割测量数据,这样我就可以用最少量的“搜索”来插入或查询数据。
这有意义吗?我不需要进行任何连接或复杂查询,它们都是直接批量插入或时间戳范围内的单个测量类型查询。
MySql如何将数据存储在硬盘中的表格中?如何在插入和插入过程中更好地设计数据库以最小化硬盘搜索?查询?
答案 0 :(得分:0)
您正在通过使用谷歌或您喜欢的任何搜索引擎阅读文档或浏览知识库文章来提出可以发现的一般性问题。如果您使用默认的MyISAM引擎,则每个表都存储为特定于db的目录中的三个文件,其中大的是行数据的MYD文件和所有索引的MYI文件。
您可以做的最重要的事情是让配置参数正确,以便它可以优化访问和缓存。 MySQL将比你现实期望的更好。有关详细信息,请参阅http://dev.mysql.com/doc/refman/5.1/en/option-files.html,并比较您在系统中找到的my-small.cnf和my-large.cnf的设置,如本节所述。