WHERE 1=1的性能疑问~

今天在网上看到这个文章  低效的“WHERE 1=1”     文章说:使用添加了“1=1”的过滤条件以后数据库系统就无法使用索引等查询优化策略,数据库系统将会被迫对每行数据进行扫描(也就是全表扫描)以比较此行是否满足过滤条件,当表中数据量比较大的...显示全部
今天在网上看到这个文章  低效的“WHERE 1=1”     文章说:使用添加了“1=1”的过滤条件以后数据库系统就无法使用索引等查询优化策略,数据库系统将会被迫对每行数据进行扫描(也就是全表扫描)以比较此行是否满足过滤条件,当表中数据量比较大的时候查询速度会非常慢。因此如果数据检索对性能有比较高的要求就不要使用这种“简便”的方式。   

让我有点晕了 ,没觉得有什么问题啊 ·~~来跟大家讨论讨论·~~收起
参与21

查看其它 19 个回答ljbupc的回答

ljbupcljbupc软件开发工程师上海安硕科技
1=1 没有问题,在不需要查数据的时候用1=2 在有时候才有可能会有问题..
如果只是1=2 的条件,虽然不会走索引,但也没有什么问题.
如果有其他查询条件,然后加1=2 就可能有问题.
还有就是转换为动态sql解析参数的时候,容易把后面的2解析为参数.
然后执行计划就可能有问题.
互联网服务 · 2012-03-27
浏览2174

回答者

ljbupc
软件开发工程师上海安硕科技

ljbupc 最近回答过的问题

回答状态

  • 发布时间:2012-03-27
  • 关注会员:1 人
  • 回答浏览:2174
  • X社区推广