博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
神奇的Sqlite表连接(ContactsProvider)
阅读量:5034 次
发布时间:2019-06-12

本文共 626 字,大约阅读时间需要 2 分钟。

     自定义了一个电话查询的URI,利用raw_contacts,data,phone_lookup,这三个表把符合条件的数据查询出来。

     刚开始我直接用sql1:

select 
* 
from raw_contacts 
inner 
join phone_lookup 
on ... 
                                                 
inner 
join data 
on ...

 

        在SqlSpy上查询7000笔只需要50毫秒,而在手机查询却需要将近20秒。

        对比了一下data和phone_lookup的区别,直接raw_contacts inner join data.结果手机上查询只要不到1秒。本来想只用这两个表,不过考虑到电话号码中如果含有特殊符号的情况,于是继续思考。

        反反复复看着raw_contacts inner join data,突然灵光一闪,把phone_lookup换个位置 sql2:

select 
* 
from raw_contacts 
inner 
join data  
on ... 
                                                 
inner 
join phone_lookup 
on ...

 

        这下结果也正确了,速度也非常快。真是很神奇。

        但是更神奇的是:把sql1 union 另外一个查询,结果手机上速度也只要不到1秒的速度。

        

         看来以后做些sqlite时,还是要多动动手,多尝试几种连接方式。

转载于:https://www.cnblogs.com/KiloNet/archive/2012/04/08/2437855.html

你可能感兴趣的文章
338. Counting Bits
查看>>
MySQL临时表
查看>>
关于使用jqmobi前端框架在phonegap平台上开发时的日期时间选择控件
查看>>
HDU 4638 Group (莫队算法||线段树离散查询)
查看>>
精神到处文章老,学问深时意气平(努力方向)——Leo2014年终总结
查看>>
Android-ListView 下拉刷新
查看>>
批量判断流量大于300的小脚本
查看>>
SDN
查看>>
cf 11B Jumping Jack(贪心,数学证明一下,,)
查看>>
POJ 2418 Hardwood Species(STL在map应用)
查看>>
Python开发之路
查看>>
Codeforces 449.C Jzzhu and Apples
查看>>
取石子游戏HDU1846
查看>>
前端常见英文缩写含义
查看>>
POJ_3967_Ideal Path
查看>>
将Ubuntu下网卡名称enss改为eth0
查看>>
VS 里附加库目录的设置
查看>>
移动端jq及zepto事件绑定
查看>>
记五一清北(济南)
查看>>
Centos非管理员安装Python和pip
查看>>