MySQL: Zeit fürAbfrage abschätzen

Hallo,

ich habe hier eine relativ große Datenbank auf der der User suchen kann.
Das Problem ist wenn er zu unscharfe Suchbegriffe eingibt wird das
Ergebniss sehr groß und überlastet den Server vollkommen.
Also Workaround hab ich z.Zt. das sortieren deaktiviert und limitiere
immer auf 30 Datensätze/Anfrage.

Das Limit ist vollkommen OK allerdings möchte ich die Sortierfunktion
gerne aktivieren.
Da es sehr aufwändig (unmöglich?) wäre die Suchbegriffe auf ihre sch=
ärfe
zu untersuchen hatte ich die Idee ob es vielleicht bei MySQL eine
Möglichkeit der Art gibt, dass ich den Server frage "was schätzt du wie
lange du für folgenden SQL-String brauchst" und wenn die antwort unter x
sekunden ist schicke ich die Anfrage ansonsten sag ich dem User er soll
die Suche verfeinern.

stefan
Stefan Heinrichsen [ So, 17 Juli 2005 11:38 ] [ ID #883092 ]

Re: MySQL: Zeit für Abfrage abschätzen

Stefan Heinrichsen wrote:
> Hallo,
>
> ich habe hier eine relativ große Datenbank auf der der User suchen kann.
> Das Problem ist wenn er zu unscharfe Suchbegriffe eingibt wird das
> Ergebniss sehr groß und überlastet den Server vollkommen.

Was heißt überlastet? Was sagt Explain zu den überlastenden Abfragen? Vielleicht hilft dir
ein Index?

> Also Workaround hab ich z.Zt. das sortieren deaktiviert und limitiere
> immer auf 30 Datensätze/Anfrage.
>
> Das Limit ist vollkommen OK allerdings möchte ich die Sortierfunktion
> gerne aktivieren.
> Da es sehr aufwändig (unmöglich?) wäre die Suchbegriffe auf ihre schärfe
> zu untersuchen hatte ich die Idee ob es vielleicht bei MySQL eine
> Möglichkeit der Art gibt, dass ich den Server frage "was schätzt du wie
> lange du für folgenden SQL-String brauchst" und wenn die antwort unter x
> sekunden ist schicke ich die Anfrage ansonsten sag ich dem User er soll
> die Suche verfeinern.

Bis denn dann
Stefan

>
> stefan
Stefan Rybacki [ So, 17 Juli 2005 14:18 ] [ ID #883093 ]

Re: MySQL: Zeit fürAbfrage abschätzen

Am So 17.07.05 um 14:18 CEST schrieb Stefan Rybacki
<stefan.rybacki [at] gmx.net>:

> Stefan Heinrichsen wrote:
> > Hallo,
> >
> > ich habe hier eine relativ große Datenbank auf der der User suchen
> > kann. Das Problem ist wenn er zu unscharfe Suchbegriffe eingibt wird
> > das Ergebniss sehr groß und überlastet den Server vollkommen.
>
> Was heißt überlastet? Was sagt Explain zu den überlastenden Abfrage=
n?
> Vielleicht hilft dir ein Index?

Ein Index - Ja. Hätte wirklich nicht gedacht dass der soviel bringt!
Läuft jetzt ganz flott alles :)
Stefan Heinrichsen [ So, 17 Juli 2005 15:19 ] [ ID #883094 ]
PHP » de.comp.lang.php.datenbanken » MySQL: Zeit fürAbfrage abschätzen

Vorheriges Thema: PHP - Informix . UPDATE-Problem
Nächstes Thema: Suche im Kategoriebaum