【发布时间】:2011-08-01 13:49:01
【问题描述】:
我对 sqlite 中的 BLOB 有以下疑问:
- sqlite 是否跟踪 BLOB 的大小?
- 我猜是这样,但是长度函数是使用它,还是读取 BLOB 的内容?
- 如果 sqlite 跟踪 BLOB 的大小并且长度不使用它,是否可以通过其他一些功能访问该大小?
我问这个是因为我想知道是否应该实现在附加列中设置 BLOB 大小的触发器,或者我是否可以动态获取大小而不会影响 sqlite 读取 BLOB 的性能。
【问题讨论】:
-
我遇到了类似的问题(需要测试一个 blob 是否不为空),并且直接使用
column_name is not null进行测试确实比长度length(column_name) is not null花费了很多时间。很明显,length()不会读取 blob 的内容。 (恕我直言is not null应该这样做,或者至少测试之前的长度。)