phpbar.de logo

Mailinglisten-Archive

Probleme mit Tabelle - bessere Performance

Probleme mit Tabelle - bessere Performance

Christian Thiele mysql-de_(at)_lists.bttr.org
Wed, 10 Apr 2002 19:24:55 +0200


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

CREATE TABLE mail_body (
  body_id int(11) NOT NULL auto_increment,
  body_from varchar(32) NOT NULL default '',
  body_deleted char(1) NOT NULL default 'N',
  body_date varchar(16) NOT NULL default '',
  body_text text NOT NULL,
  body_subject varchar(60) NOT NULL default '',
  PRIMARY KEY  (body_id),
  UNIQUE KEY body_id_2 (body_id),
  KEY body_id_idx (body_id),
  KEY msg_from (body_from),
  KEY date_idx (body_date),
  KEY deleted_idx (body_deleted),
  KEY body_from (body_from)
) TYPE=MyISAM;
# --------------------------------------------------------

#
# Tabellenstruktur für Tabelle `mail_idx`
#

CREATE TABLE mail_idx (
  message_id varchar(14) NOT NULL default '',
  message_to varchar(32) NOT NULL default '',
  message_read char(1) NOT NULL default 'N',
  message_deleted char(1) NOT NULL default 'N',
  message_body int(11) NOT NULL default '0',
  PRIMARY KEY  (message_id),
  KEY message_id (message_id),
  KEY message_body_idx (message_body),
  KEY msg_to (message_to),
  KEY msg_read (message_read),
  KEY deleted_idx (message_deleted)
) TYPE=MyISAM;


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



php::bar PHP Wiki   -   Listenarchive