測試在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