如我所见,如果我切换 PRAGMA case_sensitive_like=ON,LIKE 运算符可以优化查询。我测量过,它确实有效,查询“LIKE someth%”在比较大的二进制索引表上变得快十倍。但问题是我的库作为我的应用程序的附加组件实现,它使用它连接的任何数据库维护自己的表。所以问题是
- 我无法读取case_sensitive_like,因为它只支持设置,不支持读取。所以我暂时无法读取状态并在查询后返回,
- 作为一个应该遵守数据库主要功能的插件,我不应该将设置更改为我的需要,因为它会影响其他例程。
- 正如我所见,我没有直接调用 optimizid 查询的 Like(区分大小写)内部等效项。例如使用 LIKECASESENSITIVE 而不是 LIKE
- 我可以调用 sqlite3_create_function,但我不知道我是否可以在内部调用 LIKE(CASE SENSITIVE)。