哪个SQLite查询表现更好?

Kin*_*ing 0 sql sqlite performance

我听说有人说case_sensitive_like启用可以使查询更快.如果是这样,如果我们有以下2个查询选择不区分大小写的数据,您认为如何:

  1. SELECT * FROM MyTable WHERE MyColumn LIKE '%Value%'

    假设case_sensitive_like关闭(默认),这将返回相同的结果无论ValueIS value,vAlue,valUE,...

  2. PRAGMA case_sensitive_like = ON;
    SELECT * FROM MyTable WHERE LOWER(MyColumn) LIKE LOWER('%Value%');

    这也将返回相同的结果无论ValueIS value,vAlue,valUE,...

我希望#2的表现优于#1.

请帮忙.谢谢.

PS:我认为#2的性能可以通过首先使用小写字符串的值声明值的常量来改进,或者可以在传递查询之前处理(例如在C#代码中).

Jam*_*son 5

我希望查询号2略慢一些.

与"case_sensitive_like"一样,关闭实际上是"LIKE LOWER(%...%)"但是在LIKE函数中实现 - 因此选项1在功能上是相同的,但没有调用单独函数的额外开销.

但是,由于大部分时间和资源将用于将数据从磁盘上拖出并在行中找到"MyColumn",因此我怀疑这种差异是否会引人注意.