Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 安卓数据存储问题_Android_Sqlite - Fatal编程技术网

Android 安卓数据存储问题

Android 安卓数据存储问题,android,sqlite,Android,Sqlite,我有一个在SQLite数据库中存储数据的应用程序,当这个应用程序刚刚安装时,它使用8kb的数据,当我开始插入数据时,数据的大小明显增加。奇怪的是,当我开始清理数据库表时,我会将数据库完全清空,但我永远不会恢复前8kb的数据,但在某些情况下,会恢复超过100kb的数据,这些数据来自何处?数据库与文件系统不同,因此从数据库中删除数据时,不会恢复以前使用的空间。数据库驱动程序倾向于保留旧的分配空间 您可以压缩数据库,它将通过手动执行SQLite命令来恢复此空间 可能可以启用自动真空模式,但这需要在创建

我有一个在SQLite数据库中存储数据的应用程序,当这个应用程序刚刚安装时,它使用8kb的数据,当我开始插入数据时,数据的大小明显增加。奇怪的是,当我开始清理数据库表时,我会将数据库完全清空,但我永远不会恢复前8kb的数据,但在某些情况下,会恢复超过100kb的数据,这些数据来自何处?

数据库与文件系统不同,因此从数据库中删除数据时,不会恢复以前使用的空间。数据库驱动程序倾向于保留旧的分配空间

您可以压缩数据库,它将通过手动执行SQLite命令来恢复此空间


可能可以启用自动真空模式,但这需要在创建数据库之前完成。

只需在大量删除后调用db.execSQL(“真空”),我就可以看出其中的区别。谢谢!真空是否也加快了数据访问速度?@mserioli它只是通过重建数据库对数据库进行碎片整理。我还没有找到文件说明它可以加速数据访问…它会间接地加快访问速度,想象一下,你可以更快地在一个乱七八糟的房子里找到你的玩具,还是在一个干净的房子里?