SQLite中INTEGER类型0字节存储的含义是什么?
SQLite INTEGER类型0字节存储的含义
文档里提到的0字节存储整数,其实特指存储NULL值的场景。
SQLite采用动态类型系统,哪怕你把列定义为INTEGER,也允许存储NULL、文本、实数等其他类型的值。当你在INTEGER列中存储NULL时,这个值会以0字节的形式存储——因为NULL本身不携带任何实际数据,不需要占用存储空间。
对于非NULL的整数,SQLite会根据数值的大小选择对应的存储空间:
- 范围在-64到63的有符号整数,用1字节存储
- 更大的数值依次使用2、3、4、6或8字节,最大用8字节存储64位有符号整数
需要明确的是:只有NULL值才会占用0字节,任何实际的非NULL整数都会占用至少1字节的存储空间。
内容的提问来源于stack exchange,提问作者robertspierre
相关产品推荐
相关产品推荐

