Tech 15. Apr. 2007

TYPO3: Perfomance der Indexed Search

In einem Projekt hatten wir deutlcihe Performance Probleme mit der indexed Search. Dies hatte zum einen die Ursache, dass wir die Suchergebnisse der Indexed Search selbst (nach Zeiträumen oder Art des Inhalts) nachgefiltert haben und deswegen die maximale Anzahl der Suchergebnisse sehr hoch eingestellt werden musste.

Zur Optimierung haben folgende Hinweise geholfen:

“We had performance issues as well. After investigating the source we change the default search type from 1 to 20. After this every search was fast and mysql did not produce high server load.”

Spannend dabei ist, dass über den Search Type 1, die Wortindizierung verwendet wird, welche bei dem Typ 20 übergangen wird. An sich sollte man denken, dass die Indizierung von Wörtern mit der Intention entwickelt wurde, durch die zusätzliche Indizierung einen Performancezuwachs zu erzielen.

Ursache für den gegenteiligen Effekt scheinen die wesentlich komplexeren SQL-Statements zu sein. Es müssen zusätzlich zum normalen Index eben auch die Worttabellen in die Suche integriert werden. Bei vielen Seiten und Inhalten scheint diese erhöhte Komplexität wesentlich mehr Zeit in Anspruch zu nehmen. In unserem Projekt handelte es sich dabei um Suchanfragen, die 10 bis 15 Sekunden dauerten, dabei wurden mindestens 80% nur für die Datenbankabfragen benötigt.

In einem Projekt hatten wir deutlcihe Performance Probleme mit der indexed Search. Dies hatte zum einen die Ursache, dass wir die Suchergebnisse der Indexed Search selbst (nach Zeiträumen oder Art des Inhalts) nachgefiltert haben und deswegen die maximale Anzahl der Suchergebnisse sehr hoch eingestellt werden musste.

Zur Optimierung haben folgende Hinweise geholfen:

“We had performance issues as well. After investigating the source we change the default search type from 1 to 20. After this every search was fast and mysql did not produce high server load.”

Spannend dabei ist, dass über den Search Type 1, die Wortindizierung verwendet wird, welche bei dem Typ 20 übergangen wird. An sich sollte man denken, dass die Indizierung von Wörtern mit der Intention entwickelt wurde, durch die zusätzliche Indizierung einen Performancezuwachs zu erzielen.

Ursache für den gegenteiligen Effekt scheinen die wesentlich komplexeren SQL-Statements zu sein. Es müssen zusätzlich zum normalen Index eben auch die Worttabellen in die Suche integriert werden. Bei vielen Seiten und Inhalten scheint diese erhöhte Komplexität wesentlich mehr Zeit in Anspruch zu nehmen. In unserem Projekt handelte es sich dabei um Suchanfragen, die 10 bis 15 Sekunden dauerten, dabei wurden mindestens 80% nur für die Datenbankabfragen benötigt.