SELECT SUM(bmw.field1) AS `field1`,SUM(bmw.field2 + bmw.field3) AS `field23`,(SELECT SUM(t1.field1) FROM bmw_order t1 WHERE t1.`status` = 0) AS `field1_all`
FROM bmw_order bmw 
WHERE bmw.create_time < 1359475200 AND bmw.`status` = 0;

解决方案 »

  1.   

    索引情况如何?create_time上有无索引,
    `status`有多少种值
      

  2.   

    时间字段加索引没什么用 因为是小于当天的 只能希望status=0的数据很少 这样status加索引才有用
      

  3.   


    status 目前只有两种种值,后面可能会有10种左右
      

  4.   


    时间字段where不限于小于当天:)
      

  5.   

    SELECT SUM(bmw.field1) AS `field1`,SUM(bmw.field2 + bmw.field3) AS `field23`,b. `field1_all`
    FROM bmw_order bmw ,(SELECT SUM(t1.field1) as `field1_all` FROM bmw_order t1 WHERE t1.`status` = 0)  b
    WHERE bmw.create_time < 1359475200 AND bmw.`status` = 0;create index xxxx on bmw_order (status,create_time )