phpbar.de logo

Mailinglisten-Archive

Probleme mit Tabelle - bessere Performance

Probleme mit Tabelle - bessere Performance

Michael Bergbauer mysql-de_(at)_lists.bttr.org
Thu, 11 Apr 2002 10:42:58 +0100 (CEST)


On 10-Apr-2002 Christian Thiele wrote:
> Hi,
> 
> in meiner Prozeßliste von MySQL finden sich immer wieder Staus an ein und
> derselben Stelle, nämlich beim Nachrichtenversand. Dieser wird mit der
> angehangenen DB-Struktur realisiert und ich sehe nun das es immer dort
> hängt...es werden häufig updates, select, inserts, select count(*) usw auf
> die Tabellen gemacht und dann steht der state auf LOCKED und es bildet sich
> mit der Zeit eine nette Schlange von Prozeßen die ebenfalls an dieser
> Tabelle arbeiten wollen und es dauert und dauert...und so erreiche ich
> schnell max_connections.
> 
> Was kann ich verbessern an den den Tabellen oder an MYSQL damit es schneller
> läuft. Das ist derzeit ein echter
> Flaschenhals weil wenn es stoppt, dann liegt es laut Prozeßliste an der
> Tabelle...time steht dann z.T auf >10
> 
> Die DB ist kräftig in Benutzung muß ich dazu sagen, darüber regele ich den
> gesamten Nachrichtenaustausch in einer Community in der ca. 200 Leute online
> sind...
> 
> Wäre echt klasse wenn mir jemand helfen könnte, denn von den Tiefen von
> MySQL verstehe ich nicht sooviel wie einige von euch profis...danke!
> 
> Meine DB-Struktur ( 2 Tabellen weil 1 Nachricht -> mehrere Empfänger ->
> weniger redundanz und body_text kann schon recht lang sein)
> 
> Server: P800 mit  512 MB RAM und Linux 7.3

Also da duerfte es bei nur 200 Benutzern kaum Probleme geben ... Moegliche
Ursachen, die ich jetzt mal auf Anhieb sehe, sind schlechte Platten (sollte
aber auch eigentlich noch kein Problem sein) oder aber deine Indexe.

Ich vermute mal folgendes: du hast die falschen Indices angelegt, sodass sie
im Fall a) beim Lesen nix helfen, und beim Schreiben behindern oder im Fall b)
du einige der Indidces nicht benutzt und sozusagen umsonst mit schleifst.

Leider kann ich dir - ohne die Applikation zu kennen nicht konkret sagen, wie
du das beheben kannst. Ich kann dich nur aufs Manual verweisen, auf den
Abschnitt ueber die Benutzung der Indices. Lies dir das mal durch, mach dir
Gedanken zu deinen Indices, welche du evtl. nicht benoetigst oder sinnvoll
aendern kannst, und paste mal die Queries, bei denen die Applikation haengt.

Eine weitere Moeglichkeit, den Engpass zu vermeiden, waere mit verzoegerten
Statements ("insert delayed" glaub ich heisst das) zu arbeiten.



Michael

-- 
michael Bergbauer <michael_(at)_noname.franken.de>
Use your idle CPU cycles.
See http://www.distributed.net and win $ 1 000.
Visit our mud Geas at geas.franken.de Port 3333

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



php::bar PHP Wiki   -   Listenarchive