我正在使用一个大约70千兆字节的sqlite3数据库。这个db有三个表:一个有大约3000万行,另外两个有~150和~3亿,每个表从6-11列运行。
行数最少的表占用了大部分空间,因为它包含一个压缩BLOB
s的原始数据列,通常每行运行1到6千字节;数据库中的所有其他列都是数字的,压缩数据是不可变的,因此修改效率不高是一个问题。
我注意到在此表的数字列上创建索引:
[15:52:36] Query finished in 723.253 second(s).
需要几倍于在表上创建具有五倍行数的可比索引:
[15:56:24] Query finished in 182.009 second(s).
[16:06:40] Query finished in 201.977 second(s).
将BLOB
数据存储在单独的表中以便与JOIN
进行访问是否更好?每行的额外宽度最有可能成为该表慢速扫描速率的候选者。
我目前的怀疑是:
但我希望得到一些在该领域有更多知识的人的反馈。