要允许LIKE optimization工作,您需要一个NOCASE索引:
> CREATE table names(name TEXT);> CREATE INDEX i1 ON names(name);> EXPLAIN query PLAN SELECT * FROM names WHERE name liKE 'abc%';SCAN table names USING COVERING INDEX i1 (~500000 rows)> CREATE INDEX i2 ON names(name ColLATE NOCASE);> EXPLAIN query PLAN SELECT * FROM names WHERE name liKE 'abc%';SEARCH table names USING COVERING INDEX i2 (name>? AND name<?) (~31250 rows)
如果您想要区分大小写的搜索,则可以使用GLOB:
> EXPLAIN query PLAN SELECT * FROM names WHERE name GLOB 'abc*';SEARCH table names USING COVERING INDEX i1 (name>? AND name<?) (~31250 rows)总结
以上是内存溢出为你收集整理的android – SQLite中文本列的快速二进制搜索全部内容,希望文章能够帮你解决android – SQLite中文本列的快速二进制搜索所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)