Die Frage bezieht sich auf sphinx Echtzeit (rt) Indizes. Ich habe einen verteilten Index, der drei RT-Indizes enthält. Jeder rt Index hat etwa 21 Millionen Dokumente pro rt Index (insgesamt 3 * 21 = 63 Millionen).Sphinx Echtzeit-Index, unterstützt Multi-Thread-Suche, noch? Was ist, wenn sie Teil eines verteilten Indexes sind?
Ich versuche, Leistung dieser Indexkonfiguration zu verbessern, und kam in diesem informativen Beitrag:
Ab diesem Moment wird der RT-Index nur ein Kern zur Suche verwenden, keine Unabhängig davon, wie viele Platten Stücke hat es (das kann sich in Zukunft ändern!).
Quellehttp://sphinxsearch.com/blog/2014/02/12/rt_performance_basics/comment-page-1/ (Link 2014 datierte)
Ist die obige Aussage bedeutet, dass die obige Konfiguration für die Indizes immer in einer Single-Threaded Weise zur Suche laufen, also wenn ich drei rt Indizes in ein verteilter Index, auf einer Maschine mit vier Kernen können nur drei Suchvorgänge gleichzeitig ausgeführt werden, die dann auf drei Kerne durch den verteilten Index verteilt werden?
Bedeutet das, dass rt-Indizes für meinen Fall nicht geeignet sind? Wie kann ich Leistung erzielen? Im Moment benötigt jede Abfrage mit einem Schlüsselwort, das vorher nicht gesucht wurde (nicht zwischengespeichert), ungefähr 10 Sekunden, um nur die Anzahl der Datensätze zu zählen (*). Ich habe etwa 3000 RAM Chunks/RT-Index, die nach dem Artikel eine Ursache für Leistungseinbußen sein könnte, versuche ich, dieses Problem zu beheben. Aber wird sich das ändern, vorausgesetzt, ich wäre in der Lage, nur 3 Suchvorgänge parallel zu machen oder wie du sagtest keine !! * Tränen rollten * – SagaciousLearner
Gut für einen Start nicht mit count() - das ist sehr ineffizient! Führen Sie eine Abfrage aus und können Sie auch die Anzahl der Datensätze in SHOW META abrufen. Wenn Sie wirklich ohne tatsächliche Dokumente zählen möchten, verwenden Sie LIMIT 0. – barryhunter