MBTiles表现

时间:2013-04-25 04:32:32

标签: android performance sqlite mapbox

我正在开发Android地图应用程序。
我正在使用MBTiles存储我的瓷砖以供离线观看。一切都很好但随着db的大小增加,性能会大大降低。瓷砖的大小不一,但通常大小约为6 kb,并以blob形式存储。我已经复制了Mapbox使用的模式以及其他具有索引的模式。该数据库目前大小约为40 mb,读取时间约为5秒。到目前为止,我做了很多研究,除了它应该工作之外什么都没找到。见this SQLite page
我做错了什么?这是Android限制吗?

1 个答案:

答案 0 :(得分:2)

发现它!表索引从未应用过。通过execSql发送的CREATE SQL包含两个以冒号分隔的语句;一个用于创建表,另一个用于创建关联索引。显然只有第一个(CREATE TABLE)语句实际执行,所以第二个(CREATE INDEX)语句从未执行过。通过在adb shell中使用sqlite3 util,我能够找到它。运行.indices地图没有返回任何内容。改变CREATE脚本后实际创建索引VOILA! Super-Duper快速查询!