MySQL的性能和设计非常大的表

时间:2013-01-22 06:32:07

标签: mysql optimization

我正在设计一个新的MySQL数据库(使用InnoDB作为引擎),该数据库将托管记录大量数据的表(每天大约200万条记录,保存5年的数据=大约3 650 000 000行)。现在,显然将所有这些存储在一个表中并不是一个非常聪明的想法,所以这些都是我的选择:

  1. 在表格上使用分区(这种规模实际上会提供多少改进?)
  2. 生成一个新表,每个包含一个月的数据(因此,每个表约为6,000 000行)
  3. 还需要注意的是,我将不得不进行某种多主复制(或群集)。

    现在,我认为选项2 可能更好,因为它将允许查询最小的数据集(当用户指定要搜索的日期时),以及还将简化5年后的数据归档(只需移动整个表格)。但是,使用选项2意味着我必须使用联接,联合,或者我必须运行多个单独的查询才能生成结果集(如果您需要通过除了日期)。

    所以,我的问题是,是否有一种方法可以在多个表中并行运行查询,这种方式除了使用连接外,还会真正关注速度?。我想像谷歌这样的人能够通过或多或少地做这类事情来实现他们的搜索速度。

    谢谢!

1 个答案:

答案 0 :(得分:0)

Buddy我建议你去找一些像Mongodb这样的基于大数据的数据库。在那里,您可以获得有效处理大数据和快速查询处理等功能。