我想優化我的應用程序。我注意到cursor.movetofirst()方法以某種方式減慢了我的代碼的性能。android遊標movetofirst性能問題
Cursor cursor = myDbHelper.getDayInfo(new SimpleDateFormat("yyyy-MM-dd").format(myCalendar.getTime());
上面的行執行10毫秒在2.1模擬器,和
if(cursor != null && cursor.moveToFirst())
此行歷時約1.6秒。我對此沒有太多的研究。有人說在另一個線程中或在asynctask中,但這會使代碼更復雜。 我只是想弄清楚這個遊標實際發生了什麼。 任何人都可以簡化或提供與我的問題相關的數據庫性能增加的提示嗎?
你是指單行查詢的所有長操作? –
我覺得添加一個重要的評論後,找出原因表中有列id,foreign_id,日期和我只爲日期創建索引。但很快就意識到我已經創建了foreign_id和日期列索引。以下是查詢:CREATE INDEX idx ON mytable(foreign_id,date)。列順序很重要。 –