[LUGOS-PROG] Mysql in indeksi

Anze anze at volja.net
Wed Feb 16 15:36:40 CET 2005


Zivjo!

Na Internetu nekako nisem nasel podobnega primera, upam, da ima kdo kaksne 
izkusnje s tem...

Na neki MySQL bazi sem opazil zanimivo situacijo, namrec, na tabeli je bilo 
prisotnih 32 kljucev (max. meja, kolikor MySQL se dovoli). Problem je v tem, 
da jih tam ne bi smelo biti - edini kljuc, ki sem ga jaz postavil v bazo, je 
unique key na ID-ju. 

Baza je 'prezivela' mnogo takih stavkov:

alter table t modify id int(6) unique not null auto_increment;

Ko sem zdaj testiral, sem ugotovil, da vsak tak stavek doda nov kljuc (poleg 
PRIMARY se id, id_2, id_3,... , id_30, id_31). 

Je to napaka v MySQLu, ker ne ohrani kljucev oz. vsaj pobrise starih kljucev 
pri ALTER TABLE MODIFY stavku ali pa je napaka na moji strani? Z drugimi 
besedami: je to feature ali bug? 

Zanimivo je, da SELECT-i v bazah zaradi tega delujejo pocasi. Ce si pravilno 
predstavljam indekse, bi rekel, da temu ne bi smelo biti tako, ampak 
konkretna baza, kjer sem nasel to napako, po brisanju odvecnih kljucev deluje 
PRECEJ hitreje. 

Vsekakor bom nekaj spremenil (da se znebim odvecnih kljucev), vseeno pa bi rad 
vedel, zakaj je prislo do tega. Vsak komentar je dobrodosel.

Hvala in LP!

Anze


More information about the lugos-prog mailing list