1

我正在开发一个 Android 地图应用程序。
我正在使用 MBTiles 存储我的图块以供离线查看。一切都很好,但随着数据库大小的增加,性能会大大降低。切片的大小各不相同,但通常大小约为 6 kb,并以 blob 形式存储。我已经用索引和所有复制了 Mapbox 和其他人使用的架构。该数据库目前大小约为 40 mb,读取大约需要 5 秒。到目前为止,我已经做了很多研究,除了它应该可以工作之外什么也没发现。请参阅此 SQLite 页面
我究竟做错了什么?这是Android限制吗?

4

1 回答 1

2

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

于 2013-04-25T17:28:10.340 回答