【发布时间】:2017-07-01 20:01:22
【问题描述】:
在 SQLite 中,零字节字符串 ('') 存储为文本类型,与 NULL 值不同,后者存储为 NULL 类型。 NULL 值如何在 SQLite 内部存储,它与空字符串有何不同?
鉴于表中的每个值都存储有一个标识符,该标识符指示它是 5 种类型(整数、浮点数、文本、Blob 或 Null)之一,并且不希望每次出现新值时都必须重新组织表输入占用比原始值更多的空间,我猜测除了标识值的数据类型的字节之外,还有另一个条目 - 指向存储在某个堆栈中的实际值的指针,可能还有第三个条目给出条目的字节长度。那么,空值可能由 NULL 类型值后跟空指针来指示。这将允许长度为 0 的字符串 ('') 与空值不同。
我是否接近 SQLite 处理此问题的方式?
拉里·亨斯克
【问题讨论】: