我有一个拥有200万条记录的MySQL数据库。我已经在使用sphinx索引数据,然后快速搜索。
我有两个索引。一个大的指数每天凌晨3点轮换,一个较小的指数只保留增量变化。它每30分钟旋转一次,并仅索引数据库中的新行(在3AM之后插入的行)。
一切都很好。搜索工作正常。但我正在寻找一些改进。我不需要每天重新索引大数据库,因为一旦信息插入数据库,它就不会改变(我只有插入,没有更新)。所以重建大指数绝对没用。
是否可以在年度甚至月度指数上拆分此指数?这会加速还是会减慢搜索查询的速度?如何组织索引和数据源的任何示例?如果我切换到实时索引会更好吗?
答案 0 :(得分:0)
您可以使用合并功能
http://sphinxsearch.com/docs/current.html#index-merging
每天一次将'delta'合并回'main'。合并后想要更新计数器表,因为主数据已经改变,所以值已经改变。
(一般来说,搜索得越多的索引就会受到影响。最终搜索大量的小索引会比保存更多的工作。 - 例外情况是你只能搜索部分数据。例如如果您只是查询过去一年的搜索记录,可以调整它,只搜索最新的索引。这比搜索所有记录只丢弃许多记录更有效。)