测试在Nexus 5,跑了棒棒糖更新,之后我的SQLite查询现在需要永远执行我会说,3倍,4倍倍比冰淇淋三明治Android的5棒棒糖SQLite的性能
的Android 4.0与航运更长3.7版本的SQLite,Android 5现在带有改进的3.8版本,本来应该引入50%的性能提升(理论上至少)。
然而,我没有看到这一点,SQLite的表现似乎在棒棒糖里很可怕。
与老银河3运行冰淇淋三明治并排测试我的查询需要1-2秒,在棒棒糖升级查询开始需要更长的10-15秒后。
DB创建了适当的索引。
问题只存在于棒棒糖中。
有没有人遇到过类似的问题,以及有关如何解决的建议?
样品查询&解释查询的输出:
SELECT DISTINCT
t.route_id, s.stop_name, s.stop_id, s.stop_lat, s.stop_lon, s.location_type
FROM
stops s
INNER JOIN stop_times st ON s.stop_id=st.stop_id
INNER JOIN trips t ON t.trip_id=st.trip_id
WHERE
s.lon > -111.84006 AND s.lon < -111.81482 AND
s.lat > 34.839073 AND s.lat < 34.86432 AND
service_id IN (SELECT service_id FROM calendar WHERE saturday='1')
答案是重写您的查询并添加apprpriate索引。没有数据库模式和查询本身,没有人可以帮助你。 – 2014-11-22 10:06:53
我觉得你的评论无效。重新编写每个Android版本的SQL查询不是一个有效的解决方案。如上所述,查询在棒棒糖之外需要1-2秒。问题仅限于Android 5.0。 – AlexVPerl 2014-11-22 14:52:05
所以你不希望你的查询在任何版本上花费几毫秒? – 2014-11-22 14:54:39