英语轻松读发新版了,欢迎下载、更新

数据库select语句的性能比较。

LLeiFeng 发布于 2014年12月26日
无人欣赏。

hey,大家好:

         想请教大家一个问题
         select * from table  和 select * from table where 1=1,这两条语句在性能上会有多大的差异呢
       (假设表中的数据在百万级别)?
        可针对不同数据库进行讨论(mysql.oracle,db2...等等)
        谢谢!
共6条回复
tinyfool 回复于 2014年12月26日

你为什么不自己试试看呢

LLeiFeng 回复于 2014年12月27日

1楼 @tinyfool 在公司的db2上有试过,感觉后者效率要慢,但是不知道mysql和oracle是怎样的,而今天开会刚好有说到这个问题,所以想找大家讨论一下。

tinyfool 回复于 2014年12月27日

2楼 @LLeiFeng 我觉得第一你需要把你在db2上的经验先共享出来。第二,你需要告诉我们,你为什么会关心这个问题

lyxing 回复于 2014年12月27日

从原理上说,where 1=1是占位符,仅仅是为了编程拼凑sql方便而已,这两sql是等价的,所以理论上性能应该是一样的。@LLeiFeng 你的感觉必须用时间来量化。

pjmbox 回复于 2014年12月27日

4楼 @lyxing 同意。优化器很强大,where 1=1应该会被自动去除。你看一下执行计划就知道了。

francis 回复于 2014年12月29日

4楼 @lyxing 同意,where 1=1会被优化去掉。

登录 或者 注册