Mailinglisten-Archive |
> 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