phpbar.de logo

Mailinglisten-Archive

Performance Unique Key versus Non-unique Key

Performance Unique Key versus Non-unique Key

Andreas Müller mysql at universalware.de
Die Okt 11 13:58:37 CEST 2005


Hallo Ilja,
ein unique-Index kann durchaus anders sein als ein "normaler" Index. Soweit
ich weiss ist dies auch bei Oracle, MS-SQL und DB2 der Fall - d.h. die
verwenden eine andere Form als bei einem "normalen" Index - evtl. aber nur
optional das hab ich gerade nicht genau im Kopf.

Warum kann der anders sein? Ganz einfach: Bei einem unique-Index gibt es
immer die Anzahl 1 pro Key. D.h. Statistikinformationen über die
Key-Häufigkeit können entfallen. Da es immer nur eine Row pro Key gibt
braucht man auch keine Verwaltung der Rows pro Key. Sowas macht den Index
kleiner und sollte eigentlich schneller sein. 

Ich vermute nun das du hier einen Seiteneffekt des Key-Caches erlebst. Ich
denke der Key-Cache greift nur bei einem normalen Index - nicht aber bei
einem Unique Index. Der Key-Cache läd gleich ganze Blöck in den Speicher und
ist daher schneller bei den einzelnen Elementen und ist daher schneller als
der nicht gecachte Unique Key.

Das ist alles nur Vermutung. Testen könntest du das mal mit dem MySQL-Admin
indem du die Hitrate des Key-Cachs bei beiden Varianten vergleichst.

Gruß,
Andreas

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


php::bar PHP Wiki   -   Listenarchive