mysql - key und index ?

whyte
Posts: 61
Joined: 2006-01-09 14:21

mysql - key und index ?

Post by whyte »

Hallo,

ich hab mich mal etwas mit der optimierung von mysql beschäftigt.

Ich lege normalerweise Datenbanken so an:

Code: Select all

CREATE TABLE artikel (
   `id` int(11) NOT NULL auto_increment,
   `artikel` varchar(50) NOT NULL default '0',
   `beschreibung` varchar(250) NOT NULL default '0',
    PRIMARY KEY  (`id`)
);


So wie ich das sehe, ist nun id ein Key, also doch indexiert.

Nun habe ich mal spasseshalber den Befehl

Code: Select all

CREATE INDEX artikel_id ON artikel(id)


ausgeführt und erhalte im Webmin ein Indexbild ...

Was genau ist nun der Vorteil / Unterschied oder ist alles das selbe ?

Gruß + Danke
Marco
Top

ekle
Posts: 18
Joined: 2004-05-09 11:36

Re: mysql - key und index ?

Post by ekle »

http://www.oreilly.de/catalog/einmysql2 ... r/ch05.pdf
auf seite 154 sind die indexarten kurz erklärt
Top

User avatar
isotopp
RSAC
Posts: 482
Joined: 2003-08-21 10:21
Location: Berlin

Re: mysql - key und index ?

Post by isotopp »

whyte wrote:

Code: Select all

    PRIMARY KEY  (`id`)

CREATE INDEX artikel_id ON artikel(id)


MySQL definiert:

"Ein PRIMARY KEY ist ein UNIQUE KEY auf eine oder mehere Spalten, die alle NOT NULL sind, und der den Namen PRIMARY hat."

Du hast einen weiteren Key mit dem Namen artikel_id definiert, der nicht UNIQUE ist. Dies hat keine Vorteile bei Lesezugriffen und wird Schreibzugriffe um 10-15% verlangsamen.
Top

whyte
Posts: 61
Joined: 2006-01-09 14:21

Re: mysql - key und index ?

Post by whyte »

Hallo,

vielen Dank, das hilft mir weiter.
Werden diese zusätzliche Indexe denn automatisch herangezogen, wenn ich dann Daten aus der Tabelle auslese ??

Gruß
Marco
Top

User avatar
isotopp
RSAC
Posts: 482
Joined: 2003-08-21 10:21
Location: Berlin

Re: mysql - key und index ?

Post by isotopp »

whyte wrote:Werden diese zusätzliche Indexe denn automatisch herangezogen, wenn ich dann Daten aus der Tabelle auslese ??


Bitte lies die Dokumentation zu dem Befehl "EXPLAIN", http://dev.mysql.com/doc/refman/5.0/en/explain.html und die Bedeutung der Spalten "key" und "key_len" in der Ausgabe von EXPLAIN.
Top