五千年(敝帚自珍)

主题:【探讨】论坛搜索功能的优化。 -- 铁手

共:💬15
全看分页树展 · 主题 跟帖
家园 LIKE 操作符的优化:

LIKE操作符

LIKE操作符可以应用通配符查询,里面的通配符组合可能达到几乎是任意的查询,但是如果用得不好则会产生性能上的问题,如LIKE ‘%5400%' 这种查询不会引用索引,而LIKE ‘X5400%'则会引用范围索引。一个实际例子:用YW_YHJBQK表中营业编号后面的户标识号可来查询营业编号 YY_BH LIKE ‘%5400%' 这个条件会产生全表扫描,如果改成YY_BH LIKE 'X5400%' OR YY_BH LIKE 'B5400%' 则会利用YY_BH的索引进行两个范围的查询,性能肯定大大提高。

所以我建议铁手兄把搜索语句改成

select (标题内容等) from A TABLE where 标题字段 like '西西河%' ,

这样搜索结果只看以西西河起头的文章内容,速度很快,

如果用户想查询 %西西河% ,请在西西河之前手动加上 % 号,这时候再动用比较费劲的 全文检索。

select (标题内容等) from A TABLE where 标题字段 like '%西西河%' ,

尤其是搜索用户名,因为大家对用户名记得比较清楚,完全可以只检索 "landkid%" 这样的字符串,可以大大加快速度。

全看分页树展 · 主题 跟帖


有趣有益,互惠互利;开阔视野,博采众长。
虚拟的网络,真实的人。天南地北客,相逢皆朋友

Copyright © cchere 西西河