为iOS压缩加密的SQLite FTS3数据库
我的应用程序使用带有FTS3的SQLite数据库进行产品搜索。我试图使用SQLCipher加密数据库,但这会导致数据库大小膨胀(7mb-->~20mb) 似乎没有什么好方法可以压缩加密的FTS SQLite数据库。有人对此有什么建议吗?我必须缩小它,以保持在20mb的3g下载限制下的应用程序为iOS压缩加密的SQLite FTS3数据库,ios,sqlite,fts3,sqlcipher,Ios,Sqlite,Fts3,Sqlcipher,我的应用程序使用带有FTS3的SQLite数据库进行产品搜索。我试图使用SQLCipher加密数据库,但这会导致数据库大小膨胀(7mb-->~20mb) 似乎没有什么好方法可以压缩加密的FTS SQLite数据库。有人对此有什么建议吗?我必须缩小它,以保持在20mb的3g下载限制下的应用程序 谢谢 没有理由认为使用SQLCipher的数据库比不使用SQLCipher的数据库大。SQLCipher数据库的每个页面仅使用IV和HMAC页面的48字节。因此,对于1024字节的页面大小,如果您有一个7m
谢谢 没有理由认为使用SQLCipher的数据库比不使用SQLCipher的数据库大。SQLCipher数据库的每个页面仅使用IV和HMAC页面的48字节。因此,对于1024字节的页面大小,如果您有一个7mb的未加密数据库,SQLCipher加密版本应该只有7.34MB 更可能的解释是,数据库的增长是删除和插入的结果。如果未在数据库上启用,则删除的行可能会继续占用空间。尝试在数据库上运行以回收空间 如果对数据库进行真空处理不能解决问题,下面是一些后续问题
为了回答您的一般问题,SQLCipher数据库可能不会很好地压缩。如果文件大小的增长实际上是FTS3而不是SqLCIPHER的结果,那么您可以考虑在应用程序上传输数据,然后在设备上构建FTS3虚拟表。您认为这是因为我正在使用FTS结合邮件列表中的SqLCIPHER发布吗?嘿,史蒂芬-谢谢所有的建议。应用程序大小的一些细分:1。未加密/未压缩FTS:21mb 2。使用FTS未加密/压缩:7mb 3。加密(SQLCipher)/用FTS压缩:22mb我不认为问题出在SQLCipher上——我只是不知道如何加密和压缩到应用程序中可用的大小。啊,现在我明白了,7mb是数据库的压缩大小。谢谢你的澄清。我认为目前没有一个好的压缩解决方案。您如何看待发布内容,然后在设备上构建FTS索引?