android - MBTiles 性能

标签 android performance sqlite mapbox

我正在开发 Android map 应用程序。
我正在使用 MBTiles 来存储我的图 block 以供离线查看。一切都很好,但随着数据库规模的增长,性能会大大降低。 block 的大小各不相同,但通常大小约为 6 kb,并存储为 blob。我已经复制了 Mapbox 和其他人使用的模式以及索引和所有内容。该数据库目前大小约为 40 MB,读取大约需要 5 秒。到目前为止,我已经做了相当多的研究,除了它应该有效之外什么也没发现。参见 this SQLite page .
我做错了什么?这是 Android 的限制吗?

最佳答案

找到了!表索引从未得到应用。通过 execSql 发送的 CREATE SQL 包含两个用分号分隔的语句;一个创建表,另一个创建关联索引。显然,实际上只有第一个 (CREATE TABLE) 语句被执行,因此第二个 (CREATE INDEX) 语句从未被执行。我能够通过在 adb shell 中使用 sqlite3 util 找到它。运行 .indices map 没有返回任何东西。在更改 CREATE 脚本以实际创建索引之后 VOILA! super 快速的查询!

关于android - MBTiles 性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16206439/

相关文章:

android - 裁剪图像,重要部分位于右下角

android - 将带有滑动选项卡的 viewpager 作为嵌套格式放置在 fragment 中

python shuffle算法性能

javascript - 如何以字符串形式返回 promise 的结果?

android - 游标或数据库未关闭错误

jquery - 与移动操作系统兼容的良好 javascript 框架工具包?

Android - 如何从多个设备检测同一用户?

r - 选择一个不相关的子集,受约束

iphone - 此代码是否适用于iTunes购买的AAC格式?

c# - 使用表名列表删除 SQLite 表