1

我将有一个包含几百万个条目的表,我一直想知道创建多个表是否更聪明,即使它们都具有相同的结构?它会节省资源,最终会更有效率吗?

这是我特别关心的问题,因为我计划创建一个小型搜索引擎,它索引大约 3.000.000 个站点,每个站点将有大约 30 个正在被索引的单词。这是我现在的结构

site
--id
--url

word
--id
--word

appearances
--site_id
--word_id
--score

我应该保留这个结构吗?或者我应该为 A 词、B 词、C 词等创建表格?与出场表相同

4

2 回答 2

0

这里有一些问题要问自己:

  • 这些记录都是相互关联的吗?有没有办法将它们清晰地划分为不同的、不重叠的组?这些组是否明确定义或可能发生变化?
  • 保持最佳写入速度是否比访问数据的简单性更受关注?
  • 有没有办法将记录划分为不同的类别?
  • 复制是一个问题吗?冗余?
  • 您担心交易安全吗?
  • 如果初始架构错误,是否可以稍后重新构建数据?

有很多方法可以解决这个问题,但是在你知道你正在使用的参数之前,很难说。

通常第一步是收集大量真实数据,或者至少模拟足够多的数据,这些数据与真实数据相当相似,在结构上是相同的。然后,您使用您的测试数据尝试不同的存储和检索方法。

没有任何测试数据,你只是在黑暗中刺伤

于 2013-04-17T02:23:26.873 回答
0

选择查询在较小的表上更快。您希望将必须排序的索引放入系统内存以获得更好的性能。
更重要的是,不应该为了保存某种类型的数据而定义表,而是为了保存相关数据的集合。因此,如果您存储的数据存在逻辑差异,则可能应该将它们分成单独的表。

(不完整)

优点:

  • 更快的数据访问

  • 更容易复制或备份

缺点:

  • 无法轻松比较来自不同表的数据。

    • 需要联合和连接查询来进行跨表比较

如果您不关心数据库上的一些延迟,它应该能够处理几百万条记录中的另一条记录,而不会带来太多麻烦。

于 2013-04-17T02:15:17.817 回答