本帖最后由 guxuemei1111 于 2013-11-07 16:03:49 编辑

解决方案 »

  1.   

    limit不可以吗,除了这个还能用什么??
      

  2.   

    分烦查询用limit啊,分类的话,可以用group by key
      

  3.   


    使用limit,可是每次都要从表里先查询出所有满足key=112的数据,如果数据非常多的话,会不会很慢?
      

  4.   


    不需要分类
    我现在每次在分页前都需要使用select * from table1 where key='112'形成一个新表,然后再对新表进行分页查询,不知道数据量非常大以后会不会很慢
      

  5.   

    肯定会很慢,你把key 做索引啊!key是int为什么要单引号!
      

  6.   

    想多了,用一般的limit分页即可,如果慢,则对key字段建立索引。
      

  7.   

    key建立索引,建议改成int,因为它的索引长度更小!
      

  8.   

    建立临时表(LSB),有自增字段ID->插入记录(你生成的表)->
    在代码中,用变量保存起始ID号,比如A1=3,A2=4
    SELECT * FROM LSB WHERE ID>=A1 AND ID<=A2
      

  9.   

    谢谢,已经建立索引,但是没有办法改为int,只能尽可能地去优化
      

  10.   

    越小的索引,速度越快!key这一列不能允许为null哦,否则索引无效!
      

  11.   

    select * from table1 where key=112 limit 0,2
      

  12.   

    简单的分页就用 limit吧 
    你可以用
    select * from table where key=‘%s’ limit (i-1)*num,num
    %s为需要查找的key值
    i为第几页,第一页就是1 之类的
    num为每页多少条
      

  13.   

    用String性能影响也不会很大,因为索引用的是hashcode,hash算法冲突概率很小的。
      

  14.   

    如果只是简单地使用limit,当查询到limit 10000,10以上,速度应该会非常慢的吧?
      

  15.   

    这个是最简单的方法,可是limit index,pagesize中随着index越来越大,查询速度肯定也会越来越慢
      

  16.   


    请问是每一次查询之前,都要先向该临时表中插入select * from table1 where key='key'生成的记录吗?
      

  17.   

    limit 10000,10以上,确实会越来越慢,因为它要把10000以前的数据全部加载出来,然后在从这里开始取10条,最后在把10000以前的数据全部扔掉!当然,这样也是有解决办法的!