SQL-Datenbanken
Wann sich Datenkomprimierung lohnt
UTF-8 statt UTF-16
Westeuropäische Texte, Namen und Produktbezeichnungen kodiert UTF-8 mit durchschnittlich etwas mehr als einem Byte pro Zeichen. Damit ist UTF-8 wesentlich kompakter als UTF-16, das dafür zwei Byte pro Zeichen benötigt. Das folgende Beispiel vergleicht den unterschiedlichen Storage-Bedarf von ASCII, UTF-8 und UTF-16.
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
Benötigter Platz |
|
ASCII |
G |
Ö |
T |
T |
I |
N |
G |
E |
N |
9 Byte |
|||||||||
UTF-8 |
G |
Ö |
T |
T |
I |
N |
G |
E |
N |
10 Byte |
|||||||||
UTF-16 |
G |
Ö |
T |
T |
I |
N |
G |
E |
N |
18 Byte |
Migriert man eine Datenbank mit vielen textuellen Daten von ASCII nach Unicode UTF-16, wächst deren Platzbedarf typischerweise um 40 bis 60 Prozent. Bei UTF-8 ergibt sich nur ein Wachstum von rund zehn Prozent.
Da UTF-8 eine wesentliche Verringerung des Plattenplatzbedarfs zur Folge hat und im Vergleich zu UTF-16 keine Performance-Nachteile bestehen, sollte aus Speichereffizienzperspektive grundsätzlich UTF-8 verwendet werden. Leider unterstützen nicht alle Datenbank-Systeme UTF-8; die Tabelle am Ende des zweiten Teils der Artikelserie liefert hierzu Informationen.