我有以下情况,其中搜索返回用户 ID 值列表(1、2、3、4、5、6 等)。如果要再次运行搜索,则保证在一段时间内结果会发生变化. 但是我需要存储搜索结果的实例以供将来使用。
我们有一个当前的实现(旧版),它使用条件为 search_id 创建一条记录,并将返回的每一行插入到具有关联 search_id 的不同表中。
table search_results
search_id unsigned int FK, PK (clustered index)
user_id unsigned int FK
这是一种不可接受的方法,因为该表已经增长到数百万条记录。我考虑过对表进行分区,但要么我会有很多分区(1000s)。
我已经优化了搜索结果过期的现有表,除非它们在其他地方使用,因此所有搜索结果都在其他地方引用。
在当前模式中,我无法将结果存储为序列化数组或 XML。我希望有效地存储搜索结果信息,以便以后可以有效地访问它而不受记录数量的影响。
编辑:谢谢您的回答,我自己运行搜索没有任何问题,但是在这种情况下,搜索的结果集被用于收件人列表,它将被一遍又一遍地使用,存储的目的是正是为了在给定时间获得数据的快照。