博采众长,精于一技。Live for love, work for dream.

Sql语句优化注意

1.尽量不要对列名进行函数处理.而是针对后面的值进行处理
例如where col1 = -5的效率比where -col1=5的效率要高
因为后面的条件对列值进行了计算.这样的条件下优化器无法使用索引
而是要针对所有值进行计算之后才能再比较

2.尽量使用和数剧列一样的值进行操作
如果col1是数值型
那么例如where col1 = 2和where col1= '2'
则前者效率更高
因为比较字符和数值型的时候
引擎需要把两者都转化成双精度然后进行比较
这样col1上的索引就失去作用了

3.减少函数的使用
例如where col1 >= '2009-10-26' and col1 <= '2009-10-27'
和where datediff(day,col1,getdate())=0
后者因为用到函数处理.所以col1上的索引又无法使用了

4.尽量不要用OR
一般对于OR的条件
优化器一般会使用全表扫描

原文地址:http://www.hiadmin.com/sql语句优化注意/

日志信息 »

该日志于2009-10-25 06:06由 Rebill 发表在数据库分类下, 你可以发表评论。除了可以将这个日志以保留源地址及作者的情况下引用到你的网站或博客,还可以通过评论 RSS订阅这个日志的所有评论。

相关日志 »

  • 哇!恭喜您找到了一个独一无二的文章。

赞助链接 »

仅有一条评论 »

  1. 第四条补充,可以用in代替or。例如: SELECT * FROM table1 WHERE id in (1, 2, 3);

添加新评论 »

返回顶部
无觅相关文章插件,快速提升流量