小さな検証アプリケーションに sqlite を使用しています。4 つの varhchar 列と 1 つの整数の主キーを持つ単純な 1 つのテーブル データベースがあります。テーブルには 100 万行近くの行があります。私はそれを最適化し、掃除機をかけました。
次のクエリを使用して、テーブルからプレゼンス カウントを取得しています。プライバシーのため、フィールドと名前を変更しました。
SELECT
count(*) as 'test'
FROM
my_table
WHERE
LOWER(surname) = LOWER('Oliver')
AND
UPPER(address_line2) = UPPER('Somewhere over the rainbow')
AND
house_number IN ('3','4','5');
このクエリの実行には約 1.5 ~ 1.9 秒かかります。私はインデックスを試しましたが、実際には違いはありません。今回は悪くないように聞こえるかもしれませんが、csv ファイルの読み取りでこのテストを約 40,000 回実行する必要があるため、想像できるように、かなり迅速に加算されます。実行時間を短縮する方法に関するアイデア。私は通常、mssql または mysql で開発しているので、sqlite に欠けているトリックがあれば喜んで聞いてくれるでしょう。
ではごきげんよう。