我们最近对如何在 sphinxsearch 中加快速度进行了一些研究。
我们发现加快速度的好方法是使用分布式索引。
我们进行了实际测试,发现使用分布式索引时查询的执行速度提高了 35-40%。
我所说的分布式基本上是我们的常规索引,通过添加AND id % 4/3/2/1 = 0
到每个源中,对于索引的每个部分,分成 4 个(承载该索引的盒子有 4 个核心)。
仅供参考,id 是我们的主键/自动增量。
因此,与其拥有一个巨大的索引,不如将其拆分为 4 个。
然后我们只使用索引类型 = 分布式 + 本地 .... 本地 .... 本地 .... 本地 .... 用于“将所有部分放在一起”索引。
我们进行了一些快速测试,得到了相同的结果……只快了 35-40% :)
因此,在我们在整个站点范围内实施之前,我们想知道:
切换到上面提到的分布式索引是否会以任何方式影响排序?
我们之所以这样问,是因为我们将 sphinx 用于许多与 SEO 相关的项目,并且我们需要保持结果的顺序相同。
我还应该提到,查询、所有查询选项等保持不变。任何和所有更改都是在守护进程端完成的。
谢谢!