需要写一个脚本去取test表的数据 数据量为一百三十多万条数据 用php分批次执行 像这样一次执行一万条 但是还是很慢啊 有什么更好的办法优化一下吗 这个脚本只要一执行 cpu占用率立马飙到30% 以下是sql语句 
SELECT * FROM gt_long_keywords WHERE is_pin = 0 LIMIT 0,10000
SELECT * FROM gt_long_keywords WHERE is_pin = 0 LIMIT 10000,10000
SELECT * FROM gt_long_keywords WHERE is_pin = 0 LIMIT 20000,10000
SELECT * FROM gt_long_keywords WHERE is_pin = 0 LIMIT 30000,10000
SELECT * FROM gt_long_keywords WHERE is_pin = 0 LIMIT 40000,10000
SELECT * FROM gt_long_keywords WHERE is_pin = 0 LIMIT 50000,10000
SELECT * FROM gt_long_keywords WHERE is_pin = 0 LIMIT 60000,10000
SELECT * FROM gt_long_keywords WHERE is_pin = 0 LIMIT 70000,10000
SELECT * FROM gt_long_keywords WHERE is_pin = 0 LIMIT 80000,10000
SELECT * FROM gt_long_keywords WHERE is_pin = 0 LIMIT 90000,10000
SELECT * FROM gt_long_keywords WHERE is_pin = 0 LIMIT 100000,10000求指教

解决方案 »

  1.   

    select * From gt_long_keywords Where Id>=0 limit 10000
    select * From gt_long_keywords Where Id>=(select Id from gt_long_keywords order by Id limit 10000,1)limit 10000
    select * From gt_long_keywords Where Id>=(select Id from gt_long_keywords order by Id limit 20000,1)limit 10000
    .......
     
    //还有,最好别用* 你不会真所有的都用到吧,如果表的字段太多,就分表。
      

  2.   

    // 拿最后一条示例,注意:下面的id是代表你表中的索引id,也就是主键id,最好给id和is_pin来个索引效果还不错
    select * FROM gt_long_keywords WHERE is_pin = 0 and id >= (select id from gt_long_keywords where id >= 100000 and is_pin = 0 limit 1) limit 10000
      

  3.   

    在数据库区的高人给出了一条sql 
    SELECT a. *
    FROM gt_long_keywords a
    INNER JOIN (
    SELECT id
    FROM gt_long_keywords
    WHERE is_pin =0
    ORDER BY id
    LIMIT 0 , 10000
    )b ON a.id = b.id
    查询时间仅为0.0304秒 哈哈 这个算正式结贴吧 谢谢大家了