现在在做一个系统,用Mysql做数据库,发现数据量变大之后。mysql的cpu占用率很高,一个测试端访问服务器时mysql的cpu占用率为15% ,6个测试端连服务器的时候mysql cpu占用率为50%~60% 。能不能优化,如何优化,我使用的mysql配置都是默认的。ps 1: 每个测试端所做事情就是插入记录,不过插入前会先查询一下是否已经有相同的记录,有的话就更新原有记录,没有就直接插入。ps 2: CPU--Pentium Dual E1240 @ 1.60GHZ
      内存--2G
      OS--Windows 2003

解决方案 »

  1.   

    采用replace into代替select、insert into会提高性能。如果是innodb,建议配置参数要做优化。
    InnoDB引擎在缺省参数配置下性能较差。
    推荐InnoDB的配置(1G内存情况,主要运行mysql服务器):
    innodb_buffer_pool_size = 600M
    innodb_additional_mem_pool_size = 64M
    # Set .._log_file_size to 25 % of buffer pool size
    innodb_log_file_size = 256M
    #innodb_log_buffer_size = 8M
    innodb_flush_log_at_trx_commit = 1
    #innodb_lock_wait_timeout = 50
    innodb_file_per_table
    其中innodb_flush_log_at_trx_commit和innodb_file_per_table对I/O性能影响最大。
    my-large.cnf等文件只是优化myisam引擎的参数,这一点在优化配置时特别要注意。