Kin*_*ing 0 sql sqlite performance
我听说有人说case_sensitive_like
启用可以使查询更快.如果是这样,如果我们有以下2个查询选择不区分大小写的数据,您认为如何:
SELECT * FROM MyTable WHERE MyColumn LIKE '%Value%'
假设case_sensitive_like
关闭(默认),这将返回相同的结果无论Value
IS value
,vAlue
,valUE
,...
PRAGMA case_sensitive_like = ON;
SELECT * FROM MyTable WHERE LOWER(MyColumn) LIKE LOWER('%Value%');
这也将返回相同的结果无论Value
IS value
,vAlue
,valUE
,...
我希望#2的表现优于#1.
请帮忙.谢谢.
PS:我认为#2的性能可以通过首先使用小写字符串的值声明值的常量来改进,或者可以在传递查询之前处理(例如在C#代码中).
我希望查询号2略慢一些.
与"case_sensitive_like"一样,关闭实际上是"LIKE LOWER(%...%)"但是在LIKE函数中实现 - 因此选项1在功能上是相同的,但没有调用单独函数的额外开销.
但是,由于大部分时间和资源将用于将数据从磁盘上拖出并在行中找到"MyColumn",因此我怀疑这种差异是否会引人注意.