我们自己搭建了一个win2008+mysql的web服务器,近期网站反应很慢,今天终于打不开了,我跟踪了一下发现有些查询时间需要30秒以上,sql语句需要优化,同是可能my sql本身的配置也有问题服务器8g内存,cpu是至强双核2.0在mysql administrator 中看到内存的key Efficiency hitrate 为 100%(如图)my sql的相关设置如下:
default-character-set=utf8
[mysqld]
basedir="C:/Program Files/MySQL/MySQL Server 5.1/"
default-character-set=utf8max_connections=800query_cache_size=0table_cache=1520
tmp_table_size=67M
thread_cache_size=38myisam_max_sort_file_size=100Gmyisam_sort_buffer_size=67Mkey_buffer_size=1000Mread_buffer_size=64K
read_rnd_buffer_size=256K
sort_buffer_size=256K
innodb_additional_mem_pool_size=12Minnodb_flush_log_at_trx_commit=1
innodb_log_buffer_size=6M
innodb_buffer_pool_size=563Minnodb_log_file_size=113Minnodb_thread_concurrency=18
请问各位高人,如何解决?

解决方案 »

  1.   

    把公式贴出来,看下你的key Efficiency hitrate 是如何计算的
      

  2.   

    key_buffer_size 太小了,要设置为内存的30%才行,你先将key_buffer_size=1000M改成key_buffer_size=2400M,再试试看
      

  3.   

    key_buffer_size 加到3G了,hitrate还是100%
      

  4.   

    key Efficiency hitrate 这个本来就是应该越高越好啊。
      

  5.   

    ACMAIN_CHM:对我们的my sql设置有什么建议吗?
      

  6.   


    你建的是啥索引,不要是 text大字段的索引?
      

  7.   

    你说你这个问题让你问的,你的数据库是什么存储引擎的啊,你给我们看key Efficiency hitrate,如果要是innodb引擎为主,不慢才怪,因为5.1版本默认就是innodb引擎,你看看你这2东西设置的,你那个是8G内存的,这么吝啬,
    innodb_flush_log_at_trx_commit=1    //如果跟新频繁那就死去吧   还是2好点,0真的不安全
    innodb_buffer_pool_size=563M        //虽然不一定要按照网上给的设置成内存的50%-80%,但是也不能这么小吧。
    还是决定你的存储引擎了