私は自分のアプリケーションを最適化しようとしています。私はcursor.movetofirst()メソッドが何とか私のコードのパフォーマンスを低下させることに気付きました。ライン上android cursor movetofirst performance issue
Cursor cursor = myDbHelper.getDayInfo(new SimpleDateFormat("yyyy-MM-dd").format(myCalendar.getTime());
このラインは約1.6秒かかっエミュレータ、及び
if(cursor != null && cursor.moveToFirst())
2.1 に10ミリ秒で実行されます。私はこれについてほとんど調べなかった。 Somepeopleは別のスレッドやasynctaskでこれを作ると言っていますが、これによりコードが複雑になります。 私はこのカーソルに何が実際に起こっているのか把握しようとしています。 私の質問に関連するデータベースのパフォーマンスの向上について、誰かが簡素化したりヒントを与えたりできますか?
あなたは、1行のクエリですべての長い操作を意味するのですか? –
テーブルに列id、foreign_id、dateがあり、日付のみのインデックスを作成した理由を見つけた後、重要なコメントを追加するように感じました。しかし、すぐに、私はforeign_idとdateカラムでインデックスを作成しなければならないことに気付きました。クエリは次のとおりです。CREATE INDEX idx ON mytable(foreign_id、date)。列の順序は重要です。 –