phpbar.de logo

Mailinglisten-Archive

Performance-Problem

Performance-Problem

Marc Albrecht mysql-de_(at)_lists.bttr.org
Sun, 10 Feb 2002 11:25:24 +0100


Moin,

> vielleicht hast Du es ja rausgekriegt, trotzdem glaube ich,
> dass ich mal das selbe Problem hatte.
> Stell Deine query von SELECT * auf weniger ausgewählte
> Felder um (SELECT id, datum) und ermittele damit die Anzahl
> der Datensätze. Bau Dir dann eine Schleife und setze den
> Anfangswert einer Variablen $anfwert auf 0, mach dann eine
> zweite SELECT mit SELECT * FROM ... LIMIT $anfwert, 150


Ähm... wie ich schrieb (siehe unten), MACHE ICH ES SO. 
Selbstverständlich greifen wir per Limit zu.

Ein Select über "*" geht im Übrigen schneller als einer über dedizierte 
Spalten.

Marc Albrecht

> 
> Bei der nächsten query muss natürlich dann der $anfwert um
> 150 hochgesetzt werden.
> 
> Bei mir waren 60000 Datensätze drin und er hat etwa 40000
> problemlos gefunden, dann ist er aber immer gekippt. Mit den
> o.g. Query's habe ich seither keine Probleme mehr. Viel
> Glück.
> 
> Gruss Volker
> 
> Marc Albrecht schrieb:
> 
>>Hallo,
>>
>>wir haben ein Performance-Problem mit mySQL 3.23 - eine Tabelle hat die
>>lächerliche Größe von 360MB (MYD-File), nur 48000 Einträge. Alle
>>Text-Spalten sind indiziert, Zugriffe erfolgen auch nur über die
>>Indizes. Die Datenbank-Files liegen auf einem RAID-0 mit zwei
>>UDMA5-Platten und werden mit DMA angesprochen (unter Linux), Filesystem
>>ist Reiser.
>>
>>Der Zugriff auf die ersten rund 15000 Datensätze erfolgt akzeptabel
>>schnell (Wartezeiten bis zu ca. 8 Sekunden, bis die Daten gepiped sind -
>>egal, ob Zugriff per mysql Commandline Tool oder via PHP). Aber danach
>>geht die Geschwindigkeit derbe den Bach runter: Zugriffe auf die
>>"hinteren" Daten sind nur mit Wartezeiten um die 6-8 Minuten möglichen
>>(SELECT * FROM table LIMIT .....)
>>
>>SHOW_PROCESSLIST zeigt während der Wartezeit den Query-String und
>>"sending data".
>>
>>Ein "cp datafile.MYD /dev/null" läuft in rund 10 Sekunden durch.
>>
>>Hat jemand eine Empfehlung, an welcher Stelle das Problem liegen könnte?
>>Ich bin für jeden Tip dankbar - wir haben schon überlegt, die Table
>>notfalls in Subtables zu unterteilen (wäre dank der Primary Keys
>>möglich), aber SINN einer Datenbank ist ja eigentlich, sowas nicht nötig
>>zu haben :-)
>>
>>Marc Albrecht
>


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



php::bar PHP Wiki   -   Listenarchive