Zum Inhalt springen

Hohe Last

Erstellt am 16. August 2006 · 9 Antworten · letzte Antwort am 30. Juli 2009

Tags: Frage

felle ·

Hallo,
unser Hoster hat uns mitgeteilt das wir immer wieder aus heiterem Himmel hohe Lastspitzen auf dem Datenbankserverhaben.
In der MySQL Prozessliste tauchen dabei immer viele Select's auf die DatenBank wie folgt auf:

SELECT IR.phash
		FROM index_words IW, index_rel IR, index_section ISEC WHERE

Weiß jemand woher das kommt. Meine Idee wäre ja das, genau zu diesen Zeitpunkten der FE-Cache gelöscht wurde und dann eine neue Indizierung der Seiten stattfindet, kann das sein?

steffenk ·

in der Tat ist das die Indexsuche.

Du solltest Dich mal mit crawler beschäftigen. Man kann dann bei der Indexsuche das Indizieren beim Seitenbesuch abstellen und den crawler über einen Cronjob steuern, das dürfte ein erheblichen Teil der Serverlast nehmen.

Näheres dazu im Handbuch der indexed_search und Podcast #8 von Kasper.

funkyferdy ·

Hey steffenk

Du scheinst dich ja auszukennen damit 😃
Ich hab das genaugleiche Problem. Ich hab auch die Doku gelesen. Komme aber nicht wirklich weiter damit.

Du solltest Dich mal mit crawler beschäftigen. Man kann dann bei der Indexsuche das Indizieren beim Seitenbesuch abstellen und den crawler über einen Cronjob steuern, das dürfte ein erheblichen Teil der Serverlast nehmen.

Diese Selects die felle da beschreibt werden ja nicht beim Indexieren gemacht sondern beim effektiven suchen. Da bringt auch der Crawler nix. Oder verstehe ich da grundsätzlich was falsch? Ausserdem habe ich noch paar LIKE * Queries drinne. Und das über 2 millionen Datensätze 😃

Anscheinend hat Kasper das schon gemeldet bekommen er kanns aber nicht genau reproduzieren. Ich schon 😃

Tom-iX ·

Hallo,

ich habe genau das gleiche Problem, auch bei dem gleichen Query wie mir schon aufgefallen ist.
Habe auch gemerkt das die Tabelle index_rel irgendwie Probleme macht bzw. diese der Grund für die lange Wartezeit ist.

Hast du dazu schon eine Lösung gefunden oder eine Erklärung?

Viele Grüße
Thomas

woida ·
SELECT IR.phash FROM index_words IW, index_rel IR, index_section ISEC WHERE

Könnt ihr mal die gesamte Abfrage posten?

Tom-iX ·

SELECT IR.phash FROM index_words IW, index_rel IR, index_section ISEC WHERE IW.baseword LIKE '%Auswertung%'

Das Statement geht noch weiter, dies ist aber unrelevant da verkürzt die Abfrage schon ein Problem macht.

Das Problem muss in der index_rel - Tabelle liegen.
Dies ist eine einfache Abfrage, die DB braucht aber ca. 40Sek um was zu finden.

Patrick S.​ ·

Ich habe das selbe Problem und bei mir sehen die Abfragen, unter anderem, so aus:

SELECT IR.phash
FROM index_words IW, index_rel IR, index_section ISEC
WHERE IW.baseword LIKE '%peter%'
AND IW.wid = IR.wid
AND ISEC.phash = IR.phash
AND ISEC.rl0
IN ( 2 )
AND is_stopword =0
GROUP BY IR.phash

Lightpro ·

Moin!

Gibt es hier vielleicht schon eine Lösung? Wir haben genau dasselbe Problem, nur das die Dauer des Querys extrem hochgeht ( > 1000 sek.)...

Wir haben ca. 8.5 Millionen Einträge in der index_rel Tabelle
Habe auch schon im Programmteil den SQL Query rausgesucht um den mit limit ein wenig einzugrenzen, habe aber wohl nur den falschen gefunden..

Danke jedenfalls!

Gruss, Ingo

enderlin ·

Dito, auch bei uns ist die index_rel das Problem (sprengt jeden Rahmen). Haben die indexed_search 2.9.2 auf Typo3 4.0.2 laufen.

Habe ich im Forum was übersehen oder ist bisher die einzige Lösung, die Version der Search-Extension nach unten zu setzen?

Bin für jeden Hinweis dankbar.

Ein gutes 2007!

Flip

collidoscope ·

Hatte das gleiche Problem und habe daraufhin die Ext Full-Text MySQL support for indexed_search (indexed_search_mysql) in der Version 0.0.1 installiert.

Aber Vorsicht: Die Extension hat mir erst mal die Website lahm gelegt!!

In der ext_localconf.php von indexed_search_mysql sollte rst mal das erste "<?" entfernt werden.

Danach klappte es allerdings immer noch nicht, da die Volltextindizes nicht angelegt werden konnten, die in der ext_tables.sql definiert werden.

Habe dann manuell versucht die Indizes zu erstellen und habe festgestellt, dass der Tabellentyp von index_fulltext und index_word InnoDB anstatt MyISAM ist.

Also Tabellentyp wechseln und Extension noch mal installieren oder Indizes manuell erstellen.

Danach gibt es kein "SELECT IR.phash FROM index_words IW..." mehr.

Ich hoffe, dass das auch bei anderen so funktioniert.