高速テキスト検索テーブルを備えた 700,000 エントリのデータベースがあります。各行には、時刻が関連付けられています。一度に 100 行のレコードを効率的にページングする必要があります。私は一日の終わりを追跡することによってこれを行っています。
実行に時間がかかりすぎています (15 秒)
クエリの例を次に示します。
SELECT *
FROM Objects o, FTSObjects f
WHERE f.rowid = o.AutoIncID AND
o.TimeStamp > '2012-07-11 14:24:16.582' AND
o.TimeStamp <= '2012-07-12 04:00:00.000' AND
o.Name='GPSHistory'
ORDER BY o.TimeStamp
LIMIT 100
タイムスタンプ フィールドにはインデックスが付けられます。
これは、Order By
ステートメントが返されたすべてのレコードをソートしてから制限を行っているためだと思いますが、よくわかりません。
提案?