【问题标题】:Sphinx search distributed index tuningSphinx 搜索分布式索引调优
【发布时间】:2010-03-30 16:59:41
【问题描述】:

我正在决定如何在 3 个服务器之间拆分 3 个大型 sphinx 索引。分别搜索 3 个索引中的每一个。

在性能(搜索速度)方面更有效的是:

  1. 在单独的机器上托管每个索引

例子

machine1 - index1
machine2 - index2
machine3 - index3
  1. 或将每个索引拆分为 3 个部分,并将同一索引的每个部分托管在不同的机器上。

例子

machine1 - index1_chunk1,  index2_chunk1, index3_chunk1
machine2 - index1_chunk2,  index2_chunk2, index3_chunk2
machine3 - index1_chunk3,  index2_chunk3, index3_chunk3

?

【问题讨论】:

    标签: full-text-search distributed sphinx


    【解决方案1】:

    直观地说,我会说第一个选项会更有效。

    在这种情况下,当您搜索任何索引(例如 index1)时,系统只会查找它所在的机器 ID,然后搜索它,然后返回结果集。

    在您的第二种情况下,对于要搜索的每个索引,机器必须将其搜索分布在三台机器上,在内存中保存不同的机器 ID,以及在哪里可以找到每个块,然后最后整理结果集,然后再给您结果。

    【讨论】:

    • 是的,但在第二种情况下,系统将能够并行搜索相同的索引,这可能对性能有好处。块很少,所以找到块表并将其保存在内存中并不是什么大问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-12-12
    • 1970-01-01
    • 1970-01-01
    • 2013-09-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多