主题:【探讨】论坛搜索功能的优化。 -- 铁手
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%" 这样的字符串,可以大大加快速度。
- 相关回复 上下关系7
俺的经验,postgres不比mysql快 神游 字0 2005-03-21 19:13:56
我看到的一些说法是MYSQL一旦达到相当数量的记录,就会慢 铁手 字178 2005-03-21 19:24:34
mysql是许多dotcom的数据库 水帘洞主 字150 2005-03-21 19:33:34
LIKE 操作符的优化:
LIKE只有一种用法 闲杂人等 字454 2005-03-22 00:50:20
这个也是不错的主意,我回头看一下那个文章 铁手 字0 2005-03-21 19:27:46
我找了一下,原来这段文字出于这篇文章, landkid 字110 2005-03-21 18:44:46