需要写一个脚本去取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. gt_long_keywords 表的主键是什么? 你期望的排序字段是什么?
      

  2. 这样load大批量数据是供前台缓存吧
      

  3. 主键是就是 id  按id正序排列即可
      

  4. select a.* from gt_long_keywords a inner join (
    select id from gt_long_keywords where is_pin order by id limit 100000,10000
    ) b on a.id=b.id
      

  5. 或者预先把0得放到一张表里  然后去load这张表
      

  6. ACMAIN_CHM 果然很好使 哈哈 但是sql好像狼兄忘了加条件了 应该是这样的吧
    SELECT a. * FROM gt_long_keywords a
    INNER JOIN (
    SELECT id
    FROM gt_long_keywords
    WHERE is_pin =0
    ORDER BY id
    LIMIT 100000 , 10000
    )b ON a.id = b.id
      

类似问题 »