select 1 from table
相当于只返回一个计数,表示该条件的记录存在
select * from table
直接原表输出
select a,b,c from table
从表当中依序抓取a,b,c三个字段的(所有)数据

解决方案 »

  1.   

    当然是第三种效率最高。
    三种之间的区别,在返回数据量的大小,有两个方面影响:
    1、磁盘读,返回的列数越多,需要从磁盘上读的内容就越多。
    2、返回数据需要从数据库服务器传到应用程序中,一般都是通过网络传输的,量越大,速度越慢。所以,一般情况下,应该尽量避免使用select *这种方式,而是根据程序需要用到的字段来指定select语句的列名。
    第三种方式,一般只用于判断是否存在记录或记录的数量,而不会用到返回的数据。
      

  2.   

    select * from table
    直接原表输出
    select a,b,c from table
    --------------------------
    即使表里面也只有a,b,c三个字段,并且需要返回所有的字段信息,
    用 select a,b,c from table 也比用 select * from table 高效