本帖最后由 dz215136304 于 2013-08-15 11:33:52 编辑

解决方案 »

  1.   

    建立pid,id复合索引,PID在复合索引的前面,ID在复合索引号的最后 即可
      

  2.   

    ls +
    看extra 部分,Using filesort是导致性能低下一个很大的原因。
    原因是对于pid和id的查找和order by部分没有用上索引。
    加上(pid,id的聚合索引) 
      

  3.   


    创建主键时不就自动创建索引了么baidu 主键索引,联合索引
      

  4.   

    alter table xxx add index pid_id ( pid , id );
      

  5.   

    你这个可能没建主键索引,否则explain不会这么显示
      

  6.   

    进入phpmyadmin首页  右侧点击 Show Runtime Information,下面有你表的运行情况,看看那些Value红色的行,然后注意后面的Description,它能帮助你调整mysql到最优化的性能。另外,表示innodb 还是 myisam?myisam的话,可以尝试调整一下。key_buffer = 16K  =》  key_buffer = 16M
    table_cache = 4  =》  table_cache = 512
    sort_buffer_size = 64K  =》 sort_buffer_size = 2M
    read_rnd_buffer_size = 256K  =》 read_rnd_buffer_size = 2M增加一个 myisam_sort_buffer_size = 16M然后重启mysqld再看看情况。mysql cpu占用过高不用去理会。
      

  7.   

    pid已经做索引,id是主键.
    为什么会那么慢,没有道理
      

  8.   

    虽然pid和id都有索引,但一次只能用其一,所以你必须建一个联合索引
      

  9.   

    把你语句里的ORDER BY id DESC  去掉,如果你的id是自动编辑的话,在my.cnf里配置一下按 DESC来排序的,然后直接查就好了。
      

  10.   

    还有,是不是表的大小大于内存大小了呢?
    内存512M,系统还要用掉一些,能留给MYSQL的不多。