关于MySQL和大表优化的问题。 MySQL服务器在有限容量的服务器上运行,我们需要尽可能地优化它。
我们以每秒一次测量的速率对数据进行采样,我们使用它来在Web应用程序上绘制图形。
目前,所有这些数据都在一个表中,最终我们得到了数亿个数据点。
我们有几个数据源都有两个ID:一个用于位置,一个用于源本身。我们将两个ID一起使用以具有唯一ID,并且我们不使用MySQL id来减小数据的大小。我们使用posix加上两个id作为表主键,我们使用它们来查询DB。这些ID不是由SQL生成的。
通常我们使用大约400个时间段和几个来源绘制图表。
问题: 这种设计的最佳优化是什么?
第一个问题:将所有数据保存在单个表中还是将其拆分为多个表更好?这样做的缺点是使代码复杂化,就像我们拥有动态表一样。
如果将它们保存在单个表中更好,那么使用基于id和posix的主键是否正确?
为此目的是否有一些特定的mysql优化?
由于
答案 0 :(得分:0)
如果我理解得很好,对这种情况的最佳优化就是distributed database。更具体地说,我会将horizontal partitioning method应用到您提到的此表中。
粗略地说,这是根据某些特定条件将您的表格划分为片段的方法,这样您的查询就不必一次处理大量数据。您可以使用它来处理某些特定查询的相关数据,甚至可以使用并行处理所有数据。
请允许我不再解释,因为我不确定这是否正是你想要和需要的,也因为你可以按照自己的节奏更好地阅读这件事。但是,希望通过给你一个起点来帮助你。