ほぼ 300K のレコードを含むテーブルがあります。インデックス付きの列 (「タイプ」はインデックス付き) で where 句を使用して単純な select ステートメントを実行します。
SELECT *
FROM Asset_Spec
WHERE type = 'County'
そのクエリは高速で、約 1 秒です。さらに、ステータスに対してテストしたい:
SELECT *
FROM Asset_Spec
WHERE type = 'County'
AND status = 'Active'
2 つ目は非常に遅い (分)。ステータスはインデックス化されておらず、この特定のケースでは、データベース内の値の 99.9% が「アクティブ」です。
パフォーマンスを向上させる方法はありますか? 独自のバージョンの SQLite をコンパイルしているので、多くの設定を微調整できます (FYI - iOS の事前に用意された SQLite で同じパフォーマンス)