select * from MessageSend o group by o.batchIdMessage order by o.addTimeMessage desc这条语句,在我开发的电脑上,执行的时候,CPU占用并不多,内存会短时间增多,查询结果出来的也比较快
但是到客户的服务器上,MySQL进程的内存就固定占用47M左右,CPU满,查询好长时间才会出结果,相当于用CPU去换内存了估计是MySQL哪里设置的问题,请教解决办法,如何优化性能

解决方案 »

  1.   

    batchIdMessage
    addTimeMessage
    这两列的索引失效了吧检查索引
    mysql> explain select seqnum from t7974 order by seqnum;
    +----+-------------+-------+-------+---------------+---------+---------+------+-
    -----+-------------+
    | id | select_type | table | type  | possible_keys | key     | key_len | ref  |
    rows | Extra       |
    +----+-------------+-------+-------+---------------+---------+---------+------+-
    -----+-------------+
    |  1 | SIMPLE      | t7974 | index | NULL          | PRIMARY | 4       | NULL |
    6111 | Using index |
    +----+-------------+-------+-------+---------------+---------+---------+------+-
    -----+-------------+
    1 row in set (0.00 sec)
    extra列走没走索引
      

  2.   

    既然有group by和order by,为何不针对这两列建立索引。
    适当的可以把sort_buffer_size参数值调大一点。
      

  3.   

    高性能MySQL(第二版)中文PDF版下载