我的一条sql语句,索引都已经建立好了,没有任何的filesort,和临时表的操作,explain后显示的性能很不错!
一般来说是很快的,但是经过show profile cpu, block io for query n;的操作发现,有时候会在sending data耗时过多!
而且同一条sql语句不同时候在sending data这个阶段耗费的时间差距非常大,从不到一秒到十几秒不等,测试的时候并没有其它访问阻碍!这样的情况应该从何处入手呢?

解决方案 »

  1.   


    嗯,不过我这条sql确实没有 *
      

  2.   


    acmain版的意思是说,sending data主要受到系统IO的影响?
      

  3.   

    | executing          | 0.000003 |
    | Sending data       | 0.000167 |Sending data 这一行的 0.000167 其实是 executing 到 Sending data 所花的时间。
      

  4.   


    不是太明白,那 Sending data本身到底处于什么操作中呢?
      

  5.   


    这是我sending data的一个列子,不知该如何看!mysql> show profile cpu, block io for query 2;
    +--------------------------------+-----------+-----------+------------+--------------+---------------+
    | Status                         | Duration  | CPU_user  | CPU_system | Block_ops_in | Block_ops_out |
    +--------------------------------+-----------+-----------+------------+--------------+---------------+
    | starting                       |  0.000017 |  0.000000 |   0.000000 |            0 |             0 | 
    | checking query cache for query |  0.000086 |  0.000000 |   0.000000 |            0 |             0 | 
    | Opening tables                 |  0.000017 |  0.000000 |   0.000000 |            0 |             0 | 
    | System lock                    |  0.000013 |  0.000000 |   0.000000 |            0 |             0 | 
    | Table lock                     |  0.000012 |  0.000000 |   0.000000 |            0 |             0 | 
    | init                           |  0.000030 |  0.000000 |   0.000000 |            0 |             0 | 
    | optimizing                     |  0.000031 |  0.000000 |   0.000000 |            0 |             0 | 
    | statistics                     |  0.000289 |  0.000000 |   0.000000 |            0 |             0 | 
    | preparing                      |  0.000023 |  0.000000 |   0.000000 |            0 |             0 | 
    | executing                      |  0.000004 |  0.000000 |   0.000000 |            0 |             0 | 
    | Sorting result                 |  0.000004 |  0.000000 |   0.000000 |            0 |             0 | 
    | Sending data                   | 12.169379 | 18.651165 |   4.117374 |            0 |             0 | 
    | end                            |  0.000010 |  0.000000 |   0.000000 |            0 |             0 | 
    | query end                      |  0.000004 |  0.000000 |   0.000000 |            0 |             0 | 
    | freeing items                  |  0.000605 |  0.001000 |   0.000000 |            0 |             0 | 
    | logging slow query             |  0.000004 |  0.000000 |   0.000000 |            0 |             0 | 
    | logging slow query             |  0.000039 |  0.000000 |   0.000000 |            0 |             0 | 
    | cleaning up                    |  0.000004 |  0.000000 |   0.000000 |            0 |             0 | 
    +--------------------------------+-----------+-----------+------------+--------------+---------------+