hey,大家好:
想请教大家一个问题 select * from table 和 select * from table where 1=1,这两条语句在性能上会有多大的差异呢 (假设表中的数据在百万级别)? 可针对不同数据库进行讨论(mysql.oracle,db2...等等) 谢谢!
你为什么不自己试试看呢
1楼 @tinyfool 在公司的db2上有试过,感觉后者效率要慢,但是不知道mysql和oracle是怎样的,而今天开会刚好有说到这个问题,所以想找大家讨论一下。
2楼 @LLeiFeng 我觉得第一你需要把你在db2上的经验先共享出来。第二,你需要告诉我们,你为什么会关心这个问题
从原理上说,where 1=1是占位符,仅仅是为了编程拼凑sql方便而已,这两sql是等价的,所以理论上性能应该是一样的。@LLeiFeng 你的感觉必须用时间来量化。
4楼 @lyxing 同意。优化器很强大,where 1=1应该会被自动去除。你看一下执行计划就知道了。
4楼 @lyxing 同意,where 1=1会被优化去掉。