搜索历史 - 架构建议?

时间:2011-01-29 02:15:37

标签: database-design search

我需要跟踪用户的所有搜索记录并将其显示回来。每个搜索项目一行似乎不是存储它的最佳方式,因为它会快速增长。还有哪些其他技术可以存储此类数据。这是一次写入并始终读取。搜索历史记录将显示在许多页面上。

2 个答案:

答案 0 :(得分:1)

我首先将业务需求与解决方案和任何潜在的技术问题(I.E.,数据库性能)分开。

业务需求应阐明问题以及预期结果。例如,您可能需要保留所有搜索历史记录,但仅在UI的高度可见部分中显示最新的50。搜索历史记录的其余部分可能会以某种形式的分组(I.E.,年份和月份)显示,并且仅在UI中显示在单独的屏幕/报告中。

了解这一需求将向您展示最简单,最可能合适的解决方案。请记住,如果性能在轨道上出现问题,您可以始终对数据进行垂直或水平分区。使用上面仅保留最新50次搜索的示例,您可以创建一个多表解决方案,其中一个表包含最新和当前信息以及存档搜索的其他表。然后,您可能希望以某种形式的XML数据类型存储存档的搜索历史记录。

希望这有帮助

答案 1 :(得分:1)

让它快速成长并出现什么问题?有多大?缓慢有多慢?

您是否测试了从包含1亿行的表中查找100行所需的时间?你对索引了解多少?关于规范化设计?关于Star Schema设计?