phpbar.de logo

Mailinglisten-Archive

Probleme mit Tabelle - bessere Performance

Probleme mit Tabelle - bessere Performance

Christian Thiele mysql-de_(at)_lists.bttr.org
Thu, 11 Apr 2002 20:32:38 +0200


Hi

> 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.

Also laut Log (slow-queries) sind die UPDATE Operationen sehr aufwendig,
besonders das als gelöscht markieren (deleted-flag) in der mail_idx. Dort
hängt
es immer, die Tabelle gilt als gelockt und schon staut es sich und es wird
lahm....

Beispiel UPDATE:

update mail_idx set message_deleted = 'Y',message_read = 'Y' where
message_to='w' or message_id = 'shVlVjSaOIJrui' or message .........

Aber wieso muß ich die INDEXe benutzen, mysql macht das doch automatisch?!?!
Welche Index kann ich denn entfernen?

Ich habe für alle Felder INDEXe in den mittels WHERE-Statement gesucht wird,
damit sollte das schneller gehen...entferne ich lieber welche für mehr Speed
bei Update & Insert ??

Wie krieg ich das schneller hin ???

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;



Ciao
Christian


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



php::bar PHP Wiki   -   Listenarchive