在查询时  字段列表是用星号 代替好,还是 写上 需要查询的字段好, 从性能上分析 他们差别大吗。求各位大侠指点 

解决方案 »

  1.   

    例如 
    1:select * from table  
    还是 
    select id,name,title form table
      

  2.   

    如果表中没有什么特别的字段,比如 blob, varchar(1000) 之类的。 *的差别不大。不过理论上,是需要哪些字段,则仅列出哪些字段。不需要的字段不要列。 
      

  3.   

    遵守规矩吧,需要那些字段就写哪些字段。当你的查询中有blob,text之类的大字段时,效率影响就很明显了。
    举个例子
    tableA(id,name,blobx)
    index(id,name)如果你select id,name from tableA where id=10 and name='a';
    1:这时候通过覆盖索引就可以返回结果集,但是*的时候就不行了。
    这是对查询的影响。2:另外如果blobx一条记录200M,如果是*的情况下,这200M是需要从服务器发送到客户端,然后再在客户端被你的应用程序丢弃。这个过程中的效率损耗是完全不必要的。3:在程序处理结果集的时候,有时候是直接拿结果集的INDEX来取值,如rs(0),rs(1),这样的,如果是*,开始的时候一一对应上了,后来在表里加了个字段,不是加在最后的,这时候 rs(0),rs(1)得到的值就是错误的了。需要在代码里重新对应,代码维护麻烦。