Tom: Very wide indexes

Beitrag lesen

Hello,

Ich möchte nun einen Index über zwei Spalten aufbauen, von denen eine Bigint ist und die andere VarChar (Binary)

Warum varchar??? Wenns binary ist, dann nutze den entsprechenden Datentyp,

"binary" bezieht sich auf die Kollation, also die Anreihung der Daten (Sortierung), nicht auf die Darstellung der Daten.

den MySql zur verfügung stellt. Ein Index über ein varcharfeld mit langen Datensätzen ist in der Regel "arschlangsam" (TM)

Stellt mir MySQL denn auch einen Extra-Long-Datentyp zur Verfügung? Den kenne ich noch nicht.
Ich benötige ca. 240 Stellen mit vollen 8 Bit Nutzbreite = 1920 Bit.

Ich hätte gerne den Typ DECIMAL weiterbenutzt. Aber:

  
"M ist die Höchstzahl der Stellen (die Genauigkeit) und liegt zwischen 1 und 65. (Ältere Versionen von MySQL hatten hier einen zulässigen Wertebereich von 1 bis 254.)"  

~~~>  
  
  

> Zahlenwerte eignen sich grundsätzlich besser als Index. Bei langen varchar Werten ist evtl eine Hilfstabelle hilfreich.  
  
Woher nimmst Du diese Erkenntnis?  
  
MySQL verwaltet seine Indexe in B+Tree-Architektur. Da sollte es vollkommen egal sein, ob nur ein eingschränkter Wertebereich (Zahlen) oder ein voller Wertebereich (Digits à 8 Bit) zur Verfügung stehen. Das hat nchher nur Einfluss auf die Index-Breite (Anzahl horizontaler Blattseiten) und -Tiefe (Anzahl der vertikalen Blattseiten)  
  
Und danach fragte ich: Hat schon mal jemand die erlaubte Indexbreite (Zeichenzahl) benutzt?  
  
Aufgepasst: "Indexbreite" wird hier dopplet benutzt!  
  
  
  
  
Liebe Grüße aus dem schönen Oberharz  
  
  
Tom vom Berg  
![](http://selfhtml.bitworks.de/Virencheck.gif)  
  

-- 
 ☻\_  
/▌  
/ \ Nur selber lernen macht schlau  
<http://bikers-lodge.com>