phpbar.de logo

Mailinglisten-Archive

Performance-Problem

Performance-Problem

Marc Albrecht mysql-de_(at)_lists.bttr.org
Tue, 12 Feb 2002 20:31:15 +0100


Moin,

> Scheinbar hat da MySQL ein Optimierungsproblem beim unsortierten Zugriff und
> der Verwendung von LIMIT (dabei wärs doch so einfach).


hmmm... wie ich ja schrieb, zeigt die Status-Anzeige "sending data", 
nicht aber "sorting" (das Sorting geht innerhalb von ein, zwei Sekunden 
vonstatten). Dies deutet mir weniger auf ein Optimierungsproblem beim 
unsortierten Zugriff hin - oder?

> 1. Hast Du das ganze auch mal mit "mysql_use_result" beim Abfragen probiert?
> Dann wäre es u.U. auch nicht nötig einzelne Blöcke per LIMIT abzufragen.
> 2. Über einen Schlüssel (unique) anstatt über Limit die Abfrage eingrenzen.
> GGf. ist da natürlich regelmäßig nach Delete/Insert ein Renumber-update (in
> der Update-schleife) fällig, aber bei den paar Sätzen.


Zu beiden Vorschlägen ist zu sagen, daß das Limit deshalb eingesetzt 
wird, weil von allen möglichen Suchergebnissen immer nur ein paar 
gebraucht werden (es wird in der Applikation nicht _immer_ nach "*" 
gesucht sondern - natürlich - auch nach eingegrenzten Werten). Da es in 
keinster Weise vorhersehbar ist, WELCHE Seiten vom Anwender gebraucht 
werden (sprich: welche Zeilen per Limit abgefragt werden müssen), deucht 
mich ein "use_result" die Sache nur im Test-Bereich zu beschleunigen.

> 3. Wenn möglich, verwende für die Tabelle eine fixe Record-Größe (Platz ist
> ja genug). Verwende als Datentyp dann CHAR anstatt VARCHAR.


Ja, in dieser Richtung haben wir schon einige Tests gemacht, hat aber 
leider nicht viel gebracht (genau genommen: so gut wie gar nichts - auch 
das Ändern von "text" (ursprünglich verwendet) auf "varchar 32" (als 
Beispiel) hat effektiv 0 gebracht (varchar lässt sich, meines Wissens, 
aber auch auf fixed size einstellen, was zu einer Maximal-Länge führt - 
sollte doch einen ähnlichen Effekt haben, oder?`)


Marc Albrecht

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



php::bar PHP Wiki   -   Listenarchive