大规模MySQL查询

时间:2009-08-06 10:12:15

标签: mysql architecture

如果我们有这样的表

  

消息:Id(INT)|消息(文字)|日期(TIMSTAMP)

让我们想象一下,数据不断涌入此表。例如

  

1,'Hello World',12345678;

     

2,'Yoooo Whats Up',12345679;

     

3,'我叫哈尔!',12345680;

现在这个表很大,永远不会被删除

SELECT * FROM articles WHERE MATCH (message) AGAINST ('Hal');

现在这是可行的,有什么缺陷

我也想过每天都有一个团体价值组。因为如果我们将数据库结构更改为

,大多数查询都会在当天出现
  

消息:Id(INT)|组(INT)|消息(文字)|日期(时间戳)

如果该组是一个ID值,一旦我们进入新的一天就会增加

这也是增加群组的最佳方式,可以使用MySQL吗?或者我们必须以编程方式进行

然后我们可以通过使用下面的

来减少时间
SELECT * FROM articles WHERE MATCH (message) AGAINST ('Hal') WHERE group=3;

让我知道您对存储大型数据库表并查询它以返回特定值的最佳方法的想法或想法。

1 个答案:

答案 0 :(得分:0)

在做了一些研究之后,我遇到了一些概念和想法,这些概念和想法会使大型SQL数据库中的内容变得更快。

分组的想法并不错,因为它会缩短存储在数据库中的平衡树索引的大小,但是说你如何决定组顺序。您是基于每日,每月还是使用其他一些标准。

您决定群组顺序的每一种方式都要记住平衡树索引的结构。

上面的我的项目与上面的例子相比有一个很大的范围,但从上面我会为 date 做一个索引。这将为我提供主键的平衡树和日期的平衡树。因此,我可以通过平衡树来获得我需要的值。

请记住平衡树索引结构的缺陷和优点:

您需要记住证明方面。

  • 平衡树可让您更快地搜索内存成本。
  • 平衡树如果不仔细设计可以增加桌子的大小,以至于平衡树比自己的数据使用更多的空间。所以在平衡树上要保守。不要把每个柱子扔到它上面
  • 设计代码的方式是使用索引的列来缩短返回查询大小。

希望这有助于其他人必须设计具有大量数据大小的表:D