phpbar.de logo

Mailinglisten-Archive

blaettern optimieren

blaettern optimieren

Cybot 4t2.com-mysql at tekkno4u.de
Don Apr 3 10:40:59 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 ?

ähm, auch wenn ich mich wiederhole, und dies nur weil ich glaube das ich 
beim letzten mal nicht richtig verstanden wurde:

grenze deine suchergebnisse doch durch kategorien, in diesem fall 
anfangsbuchstaben, ein

ich nehme an deine anziege sieht in etwa so aus:

     ATitel, author .....
     ATitel2, author ...
     ATitel3, author ...
     BTitel4, author ...
     CTitel5, author ...

     Seite 1 _2_ 3 4 5 ... 2999 3000


ich würde es aber bei einer gewissen anzahl von ergebnissen so machen:

     Anfagsbuchstabe: A _B_ C D E F G ... Y Z

     BTitel, author ....
     BTitel2, author ...
     BTitel3, author ...
     BTitel4, author ...

     Seite 1 _2_ 3 4 5 ... 99 100 101


dein query würde sich also in etwa so ändern:

SELECTT *
FROM    `table`
WHERE   [deinesuche] AND 'titel' LIKE 'a%'
LIMIT   $offset, $pgsize

der vorteil: du erreichst kein 'LIMIT 3000,10' mehr, welches ja dein 
problem ist

-- 
Sebastian Mendel

www.sebastianmendel.de
www.tekkno4u.de
www.nofetish.com

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


php::bar PHP Wiki   -   Listenarchive