Wednesday, March 10, 2010

SemanticBlog

all about web innovation

MySQL-Volltextsuche beschleunigen mit Sphinx

Posted by Christian On Juli - 4 - 2009

Volltextsuche auf stark frequentierten Webseiten führt unter MySQL oftmals zu Performanceproblemen. Die Verwendung von Sphinx könnte einen Ausweg darstellen.
Sphinx ist eine freie open-source Volltextsuchengine, die in C++ implementiert und beispielsweise mit Apache Lucene vergleichbar ist. Die Installation gestaltet sich recht einfach.

Das Tutorial Build a custom search engine with PHP erklärt schnell die Vorteile von Sphinx. Verschiedene Tabellen werden über mehrere Joins verknüpft und ein View auf die Abfrage erzeugt. Dieser wird mit Hilfe von Sphinx indiziert und kann so wesentlich(!) schneller abgefragt werden, als es nur mit MySQL möglich ist. Ein weiterer Pluspunkt ist die einfache Unterstützung von PHP über eine API.

Die Erzeugung von Indices kostet natürlich auch ein wenig Zeit. Deshalb eignet sich Sphinx vor allem für Daten, welche sich nicht ständig ändern. Doch es ist möglich, mehrere Indices mit unterschiedlichen Triggern zu generieren. Eine Idee wäre zum Beispiel ein Trigger, der über einen Cron-Job alle sechs Stunden aufgerufen wird um den Hauptindex zu erzeugen sowie ein kleinerer Deltaindex, welcher mit kürzerem Zeitintervall arbeitet, um die Benutzer nicht zu lange warten zu lassen.

Es wird gemunkelt, dass mit der Version 0.9.9 inkrementelles Indizieren unterstützt wird, was einen großen Schritt in Richtung Benutzerfreundlichkeit darstellt.

Weitere Infos:

  • Ein Videobeitrag, der die Möglichkeiten der Software auslotet.
  • Für diejenigen, welche Ihren Wordpress-Blog selbst hosten, könnte dieses Plugin relevant sein: https://launchpad.net/wp-sphinx-plugin/+download
  • Performancestatistiken
  • Präsentation

O’Reillys High Performance MySQL: Optimierung, Datensicherung & Lastverteilung widmet Sphinx ein eigenes Kapitel und ist eine erstklassige Referenz, um sich intensiv mit MySQL-Performancesteigerung auseinanderzusetzen.

Das Sphinx einen Blick wert ist, beweist die Nominierung zu den Community Choice Awards bei Sourceforge 2009

Interessante Artikel: Ein Vergleich von Open Source Suchmaschinen…

A Comparison of Open Source Search Engines

Thinking Sphinx: Searching By Location And Keyword

PHP-Extension erstellen

Sphinx-Beschreibung bei PHP.net

Crontab, Server-Startupskript

Wer tiefer in die Materie einsteigen möchte und sich für speziellere Themen, wie zum Beispiel Wildcardsuche oder Suche ausschließlich in vorher festgelegten Datenbankfeldern interessiert sollte einen Blick auf folgenden Artikel werfen: Suchen mit Wildcards und nur in definierten Feldern mit Sphinx… .

Related posts:

  1. Sphinx als PHP-Modul einbinden
  2. Twittersearch-Wordpress-Integration
  3. Articles and books about PHP-MySQL Performance
  4. MySQL Key Buffer Optimierung
  5. Coole MySQL Tuning Skripts

blog comments powered by Disqus

Blogverzeichnis - Blog Verzeichnis bloggerei.de   Blogverzeichnis   Blog and ping   Blog Top Liste - by TopBlogs.de   Bloggeramt.de   Blog Directory   powered by rankingcloud   Internet Multimedia blogs & blog posts  
blog search directory   Blogverzeichnis   Blog Directory   Blog Verzeichnis   Blog Directory   Technology Blogs - Blog Rankings   blogoscoop  

Clicky