2

我有一个包含 200 万条记录的 MySQL 数据库。我已经在使用 sphinx 来索引数据,然后快速搜索它。

我有两个索引。一个大索引每天凌晨 3 点轮换,一个较小的索引只保存增量更改。它每 30 分钟轮换一次,并且仅索引数据库中的新行(那些在凌晨 3 点之后插入的行)。

一切都是好的。搜索正在工作。但我正在寻找一些改进。我不需要每天重新索引大数据库,因为一旦将信息插入数据库,它就不会改变(我只有插入,没有更新)。所以重建大索引是绝对没用的。

是否可以将此索引拆分为年度甚至月度索引?这会加快搜索速度还是减慢搜索查询速度?任何示例如何组织索引和数据源?如果我切换到实时索引会更好吗?

4

1 回答 1

0

您可以只使用合并功能

http://sphinxsearch.com/docs/current.html#index-merging

每天一次将您的“增量”合并回“主要”。合并后想更新计数器表,因为主表中的数据发生了变化,所以值也发生了变化。

(通常,您拥有的索引越多,搜索就会受到影响。最终,搜索大量小索引所花费的工作量将超过节省的工作量。 - 例外情况是您只能搜索部分数据。例如,如果您有查询仅搜索去年的记录,可以对其进行调整,以便仅搜索最新的索引。这比搜索所有记录而丢弃许多记录更有效。)

于 2012-12-01T21:07:37.880 回答