phpbar.de logo

Mailinglisten-Archive

blaettern optimieren

blaettern optimieren

Wolfgang Hauck wbh at euta.net
Mit Apr 2 16:31:22 CEST 2003


> derzeit blaettere ich in einem Suchergebnis mit
> ... LIMIT $offset, $pgsize
>
> Leider gibt es damit unuebersehbare Performace-Probleme,
> wenn man haeufige Worte sucht ('Goethe', 'Liebe', o.ae.),
> und den Resultset durchblaettern moechte ...
>
> ... LIMIT 30, 10  - geht ja noch, aber bei
> ... LIMIT 3000,10 - sucht MySQL sich 'nen Wolf
>
> In der DB kommt 3745 mal 'Goethe' und 7433 mal 'Liebe' vor.
>
> Hat dazu irgend jemand eine Idee, wie das schneller geht ?
>
> PS:
> Wie machen das eigentlich DB's die kein LIMIT kennen ?

Hi Stefan,

Bei LIMIT muss der ja erst den 3000sten Datensatz finden und das 
dauert. Da ich ja annehme, dass du das über ne Middleware laufen hast 
merk dir doch einfach die letzte DS - ID und machs so:

Select * from tabelle where [..dein like..] AND id > $letzterDS_id 
Limit 0, 10

bei kleiner:

Select * from tabelle where [..dein like..] AND id < $ersterDS_id 
Order By id desc Limit 0, 10

Geht in jedem Fall schneller. Hier kannst du aber nur in 
Zehnerschritten vor bzw zurück...
Ob der Client da aber die Lust hat das alles durchzublättern ist ne 
andere Frage...
Bei so viel Liebe in der Datenbank kommt der ja gar nicht mehr zum 
wesentlichen... ;-))

MfG Wolfgang

-- 
Infos zur Mailingliste, zur Teilnahme und zum An- und Abmelden unter
-->>  http://www.4t2.com/mysql 


php::bar PHP Wiki   -   Listenarchive