select * from table 
-----------------------------------------------
最好是頁面上用到哪些字段就把它列出來
如你數據庫裡有20個字段,你在頁面隻要顯示出10個,肯定對效能有影響了。

解决方案 »

  1.   

    肯定有影响.很多规范里面都不准写select *除了取出多余的列,增加网络压力外,数据库服务器还要去查数据字典,把*解析成表的所有列
      

  2.   

    定义每页行数以及当前页数,
    然后用
    "select top"+当前页数*每页行数+"* from table"
      

  3.   

    定义每页行数以及当前页数,
    然后用
    "select top"+当前页数*每页行数+"* from table"
    补充上述
    将以上查询语句定义为SQL
    ResultSet rs=ddd.executeQuery(SQL)(数据库连接略)
    while(rs.next()){
    if (i>(当前页数-1)*每页行数-1){
       //这里将记录集保存在数组中
       //eg
       object[] obj=new Object[N]
       obj[0]=rs.getString(2);
        ....................
        .................
    }
       i++
    }这样就可以返回当页的记录了..不用把所有记录都一次性查询出来....
      

  4.   

    select * from (select *,ROWNUM row_id from table where ROWNUM <= 当前页数*每页行数 + 每页行数) where row_id > 当前页数*每页行数 这是oracle实现
      

  5.   

    这个语句应该能满足你的需求:
    select t2.*
      from (select top(当前页数 * 每页行数) t1.* from Table t1) t2
     where t2.id not in
           (select top((当前页数 - 1) * 每页行数) t3.id from Table t3)但这个语句要求你的数据库表里必须有一个主键,且主键只能是一个字段。比如现在所用的id
      

  6.   

    在考虑io性能和cpu性能的情况下,select * 是极其危险的操作,比如一个用户数据表,有大约百万级的数据,容量是几个G,你这样做等于变相宕机
        取你所需的数据,取你所需要的条数,减轻数据库的压力
      

  7.   

    只查有用的数据出来封装到Bean里去
      

  8.   

    定义每页行数以及当前页数,如每页显示20条数据,
    然后用
    select “这里不要用* 要把所有想要的列名都列出来”from table limit 20 offset(“当前页数”- 1) * 20