有没有办法预先分配我的SQLite数据库到一定大小?目前我正在添加和删除一些记录,并希望在创建时避免这种情况。SQLite - 预分配数据库大小
回答
存在一种破解 - 将一堆数据插入数据库,直到数据库大小达到您想要的数值,然后删除数据。这样做是因为:
“当一个对象(表,索引,或 触发)从数据库中删除, 会留下空白空间,这 空的空间将在下 一次新的信息被重复使用。添加到 数据库,但与此同时, 数据库文件可能大于 严格必要。“
当然,这不是最可靠的方法。 (另外,您需要确保auto_vacuum已被禁用才能使用)。你可以在这里了解更多 - http://www.sqlite.org/lang_vacuum.html
正如我在我的问题中所说,这是我目前正在做的。但是,感谢auto_vacuum提示! – paul 2009-05-05 22:39:41
要做到这一点,最快的方式是与zero_blob功能:
例子:
Y:>sqlite3的large.sqlite
SQLite的3.7版。 4
输入“.help”作为指令
输入以“;”结尾的SQL语句
sqlite>创建表大(a);
sqlite>插入大数值(zeroblob(1024 * 1024));
sqlite>drop table large;
sqlite的>.Q
Y:>DIR large.sqlite
驱动器风量y是个人
卷序列号是365D-6110
的Y目录:\
01/27/2011 12:10 PM 1,054,720 large.sqlite
注意:由于Kyle在他的评论中正确地指出:
每个blob的大小都有限制,所以如果您希望数据库大于〜1GB,您可能需要插入多个blob。
- 1. SQLite数据库大小太大
- 2. 在SQLite中查询数据库大小
- 3. 数据库文件大小或表大小? SQLite
- 4. 在Julia中预分配已知大小的数据帧
- 5. 的Postgres + EJB3预分配大小错误
- 6. 为什么清理SQLite数据库不会减小其大小?
- 7. sqlite中的大型数据库 - 文件大小的考虑?
- 8. UIWebView内的WebSQL/SQLite数据库的最大大小(phonegap)
- 9. 访问2010数据库分解大小
- 10. 数据库分区的最佳大小
- 11. Sqlite fts4区分大小写
- 12. Android SQLite数据库 - 没有读取数据库中float的小数部分
- 13. 如何根据数据库增长预测服务器大小?
- 14. R的预留内存是分配数组大小的两倍
- 15. 是否对SQLite数据库的大小有限制?
- 16. sqlite - 查询查找表/数据库大小?
- 17. SQLite模式,数据库大小,访问速度,更新疑惑
- 18. 估计SQLite数据库离线词典的大小
- 19. Android中的光标大小限制SQLite数据库
- 20. 在Android中访问.sqlite数据库(> 1Mb大小)
- 21. Android上的SQLite数据库有大小限制吗?
- 22. Android中SQLite数据库的大小应该是什么
- 23. 安装后为什么SQLite数据库大小是0KB?
- 24. 如何将SQLite数据库的大小限制增加到140TB?
- 25. 如何在sqlite中插入不区分大小写的数据?
- 26. 数据库大小问题
- 27. 猜测数据库大小
- 28. MySQL数据库大小
- 29. TFS2010数据库大小
- 30. Android:SQLite数据库大小
为什么你认为有一个你可以避免的开销。如果可以的话,它对你的应用程序甚至有影响吗?我认为你正在试图做“不成熟的优化”http://en.wikipedia.org/wiki/Optimization_(computer_science),我们从Donald Knuth那里了解到“我们应该忘记小效率,大约97%的时间:过早优化是万恶之源。“ – lothar 2009-05-05 22:06:12
有一个合理的需要做到这一点,不与效率挂钩。 [某些文件系统](http://blogs.technet.com/b/mikelag/archive/2011/02/09/how-fragmentation-on-incorrectly-formatted-ntfs-volumes-affects-exchange。aspx)对文件可以有多少片段有限制。如果你知道你的数据库有多大,你可以通过预先分配文件来避免这个问题。 – 2011-06-23 15:16:14