我记得在某处阅读以避免 Jet SQL 中的 LIKE 运算符,因为它不会利用列上的索引。所以很久以前我开始写这样的“开始”查询:
WHERE MyColumn BETWEEN "SomeText" AND "SomeTextZZZ"
只要 MyColumn 列上有索引,BETWEEN 就会利用该索引。我现在开始质疑我的方式。BETWEEN 方法从未真正让我失望,但感觉很笨拙。
我可以理解为什么“包含”查询不能使用索引:
WHERE MyColumn LIKE "*SomeText*"
但似乎在“开始于”查询上使用索引:
WHERE MyColumn LIKE "SomeText*"
是一个如此明显的优化,以至于 Jet/ACE 团队会实施它。
任何人都可以提供文档或基准测试证明以一种或另一种方式解决这个问题吗?