Ich denke, sie haben versucht, ihre Bereitstellung Fußabdruck zu reduzieren und die Schnittstelle zu vereinfachen. Dies und wahrscheinlich versuchen zu vermeiden, mehr Versionen der DLLs (Unicode vs Nicht-Unicode-Versionen) bereitstellen zu müssen.
Und ja, es stimmt, dass sie nur Unicode unterstützen.
Aber das bedeutet nicht automatisch, dass es 2 Bytes zum Speichern benötigt. Sie können dies auf der Datenbankebene verschlüsseln, um das erste Byte im Grunde zu entfernen, wenn es nicht benötigt wird. Viele Datenbank-Engines tun dies als Mittel zur Komprimierung von Unicode.
Es bedeutet nur, dass alle Einträge, die den Satz mit zwei Bytes verwenden, einen leichten Overhead eines zusätzlichen Markers haben, der der Engine mitteilt, dass die Sequenz zwei Bytes verwendet. Andernfalls kann ein einzelnes Byte immer noch auf dem Datenträger gespeichert und als Teil des RowData-Lesevorgangs erweitert werden.
Die meisten kompakten Datenbanken verwenden immer eine Form der Lauflängenkomprimierung, wenn sie tatsächlich Bytes auf die Festplatte schreiben, um Platz zu sparen. Das Format, in dem Sie es sehen, wenn es aus der Engine kommt, entspricht kaum dem, was tatsächlich auf der Festplatte gespeichert ist.
Große Antwort. Ich war neugierig (aber nicht wirklich besorgt), wie es mich körperlich gespeichert hat. – enorl76