1.配置mysql常见的一些参数,max_connections open-files-limit key_buffer_size sort_buffer_size join_buffer_size 等各种cache,默认都比较小,可以适当调大,max_connect_errors 当apache和mysql分别部署的时候,这个参数不要设太小,防止有时候apache出啥错误,一下子所有连接都被mysql 给拒绝了。slave-skip-errors=1062 可以防止不小心在mysql从服务器执行update或者delete时导致主从失效,thread_concurrency 应设为cpu核数的2倍。
2.查看slow.log,log-slow-queries=/data/logs/slow.log 设置慢日志路径,long_query_time=1 设置单条sql执行1秒以上才打印到慢日志。刚开始优化,可以把long_query_time 设置大一点(3左右就可以了),跑一天后把3秒以上的sql优化掉,再一天一天把long_query_time 将下来,最后到0.5左右就差不多了。一般慢查询都是因为没有建索引,join 误用,多表查询顺序不是最优等。
3.建索引(单表单条sql只会用一个索引,所以要考虑建联合所以)、批量insert代替逐条insert、大表分区、读写分离、备份在slave上进行等