在数据库中,我有一张表,大约有1000万条的数据记录,现在我要对它进行整张表检索,并且进行分页显示,每页显示1000条数据记录。现在问下各位大虾,我要怎样去查询这张表才不会卡,且占用资源少。

解决方案 »

  1.   

    sql语句的忧化
    数据表的忧化,索引等等。
    mysql服务器硬件。
      

  2.   


    ++数据库数据达到100多万的时候,mysql交表就会死机,连接不上。
      

  3.   


    方法一:
    加一个字段,发卡日期(或者加上年,月两字段),只记录发卡的日期,再将日期加索引,查某一时间段,先查日期,再查时间应该会快很多吧。方法二:
    把表按某时段拆分,比如一个月一张表,查的时候先按日期确定查哪些表,再UNION起来就好了本人处理过大数据量是按方法二做的。
      

  4.   


    表分区  (Partition)
      

  5.   


    索引字段放到一个表里,不是索引的放到另一表中,然后先查询索引表中的索引,然后做成'1, 2, 3, 4'这样的字符串,然后用select的in来查询另一表中的内容(另一个表中的某个字段也要是有索引)
      

  6.   

    表table1,字段如下:
    id type
    注:id和type都带有索引
    表table2,字段如下:
    id type content
    注:id带索引
    假如table1中的id、type等于table2中的id、type
    那么查询的时候我们可以如下:
    select id from table1 where type 条件
    进行整理将查询出的id集合组成$s = '1, 2, 3, 4, 5'
    然后再
    select * from table2 where id in ($s)
    注:以上方法数据量大了自然能够体现出来
      

  7.   

    1000万,这表太大了,该分表了。
    mysql单表超过150万效率就会明显降低了。
      

  8.   

    怎么分表,可以去参看此版之前有人发过的MYSQL 5.1 PARTITION也可以自己按照自己的逻辑水平或垂直分表。你这就3个字段,而且没有大字节字段。所以用水平分就可以了。按照时间或id范围来分都是可行的方案。