基本数据库设计:保留“历史”表

时间:2013-02-14 18:21:17

标签: database-design

我到达之前的一位开发人员创建了一个数据库表,该表保存来自某个Web应用程序的搜索查询的历史列表,随后在加载页面时重新加载该用户的上次保存搜索。

问题是,这个搜索功能看到了大量的使用,并且每次进行搜索时都会向表中写入一个新行,实际上是无限的(似乎旧的搜索也没有被清除)。到目前为止,该表中有超过300k个条目并且正在计数。

我的问题是,这是一个安全的设计吗?什么是更好的选择?我担心存在这样的限制,性能和必要性。

1 个答案:

答案 0 :(得分:2)

  

这样做是否安全?

不确定。由于该表目前已构成,您可以查询并返回有史以来最受欢迎的10个搜索,以及过去6个月中最受欢迎的10个搜索。

  

什么是更好的选择?

如果要消除重复项,可以在搜索查询文本上添加唯一索引。

  

我担心存在这样的限制,表现和必要性。

只有您的组织才能确定其必要性。至于限制和性能,我使用的数据仓库每天增加200万行。您没有说出您关注的是哪个关系数据库,但是现在大多数都可以处理数万亿行的表。

  

你能解释为什么你认为在一个“无限”增长的桌子上没有清理它是一个好的设计吗?

我们假设有一个无限增长的表格的组织原因。举一个例子,我在一个系统中工作,每个查询,每次添加,更新或删除都必须记录。我们必须永远保持这个数据记录在线。这是法律规定的。

我们确保历史文件有足够的磁盘空间。我们从未想过表可以容纳的最大行数。关系数据库是DB2。