Komprimierung von Namen
-
ID Name1 Name2 Name3 Name4 ... ---------------------------------------- 0123BDE4 Peter Sigg 34A16B78 Hans Otto Hajo 9876543A Dirk Otto Lang BC4192H5 Dirk Peter Hajo Kurz ...
Auf welche Weise kann ich die Namensliste zu einer ID am geeignetesten komprimieren? Das Set umfasst etwa 3Mio Daten. Die Speicherung der Namen (Token) verbraucht relativ viel Speicher. Zu einer ID gibt es 2-8 Namen (Token). Alle Token zusammen können max. 32 Zeichen haben. An Stelle Name1 gibt es 64 verschiedene Token, an Stelle 2 sind es 16400 Token, usw:
Verschiedene Namen an Stelle 1: 64 - 6 Bit Verschiedene Namen an Stelle 2: 16400 - 15 Bit Verschiedene Namen an Stelle 3: 327432 - 19 Bit Verschiedene Namen an Stelle 4: 122720 - 17 Bit Verschiedene Namen an Stelle 5: 11652 - 14 Bit Verschiedene Namen an Stelle 6: 832 - 10 Bit Verschiedene Namen an Stelle 7: 10 - 4 Bit Verschiedene Namen an Stelle 8: 30 - 5 Bit ----------------------------------------------- 90 Bit ===============================================
Zur Speicherung eines Token an Stelle1 benötige ich also (mind) 6 Bit. Hieraus ergibt sich ein gesamter Speicherbedarf von mind 90 Bit. Lässt sich also mit 3 Intergers (=96 Bit) realisieren. Würde ich die Token zusammen (max 32 Zeichen) speichern bräuchte ich 32 x 8 Bit = 256 Bit.
Allerdings haben die meisten Datensätze 3-5 Token, daher könnte ich mir die von Token 6-8 in den meisten Fällen sparen und könnte fast alle Datensätze mit 71 Bit verwalten.
Gibt es vielleicht bessere Möglichkeiten Speicher zu sparen, als mein naiver Ansatz?
Danke & Gruss,
T.