您的应用中有一些自由文本输入框,您是否希望能够高效地对其进行搜索? 之前尝试过一些方法,却发现它们根本无法满足客户的性能需求? 我是否有一个奇招能解决您所有的问题? 您难道还不知道吗!? 我所做的,就是为您解决性能方面的难题,提供绝佳的解决方案!
照例,如果您想要“TL;DR”(太长;没读)版本,请跳到文末。 不过要知道,这样会伤我的心。
如果你在最新版本(2015.1 或更高)的 Caché/Ensemble/HealthShare 中,打开 SAMPLES 命名空间下的 Sample.Company 文件,你会看到一个名为“Mission”的字段,其中包含伪随机生成的文本。 假设我们要搜索这个文本字段。 为了进行本练习,我生成了大约 256,246 家公司——你可以自行添加一些数据并跟着操作。那么,你可能会运行以下查询:
SELECT * FROM Sample.Company WHERE Mission LIKE ‘% agile %’这是一个相当合理的查询,但其性能如何呢?显然,在没有索引的情况下,系统必须读取每一条记录,因此我们返回的 7854 行数据产生了 256,277 次全局引用。这表现并不理想! 让我们为 Sample.

.png)





