针对大表的优化MySQL

时间:2014-02-21 02:14:45

标签: mysql sql optimization

关于MySQL和大表优化的问题。 MySQL服务器在有限容量的服务器上运行,我们需要尽可能地优化它。

我们以每秒一次测量的速率对数据进行采样,我们使用它来在Web应用程序上绘制图形。

目前,所有这些数据都在一个表中,最终我们得到了数亿个数据点。

我们有几个数据源都有两个ID:一个用于位置,一个用于源本身。我们将两个ID一起使用以具有唯一ID,并且我们不使用MySQL id来减小数据的大小。我们使用posix加上两个id作为表主键,我们使用它们来查询DB。这些ID不是由SQL生成的。

通常我们使用大约400个时间段和几个来源绘制图表。

问题: 这种设计的最佳优化是什么?

第一个问题:将所有数据保存在单个表中还是将其拆分为多个表更好?这样做的缺点是使代码复杂化,就像我们拥有动态表一样。

如果将它们保存在单个表中更好,那么使用基于id和posix的主键是否正确?

为此目的是否有一些特定的mysql优化?

由于

1 个答案:

答案 0 :(得分:0)

如果我理解得很好,对这种情况的最佳优化就是distributed database。更具体地说,我会将horizontal partitioning method应用到您提到的此表中。

粗略地说,这是根据某些特定条件将您的表格划分为片段的方法,这样您的查询就不必一次处理大量数据。您可以使用它来处理某些特定查询的相关数据,甚至可以使用并行处理所有数据。

请允许我不再解释,因为我不确定这是否正是你想要和需要的,也因为你可以按照自己的节奏更好地阅读这件事。但是,希望通过给你一个起点来帮助你。