我将 sqlite 用于小型验证应用程序。我有一个简单的单表数据库,其中包含 4 个 varhchar 列和一个整数主键。表中有近 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 中缺少一些技巧,我会很高兴听到它们。
祝一切顺利。