MYSQL使用心得(三)----性能与管理优化

基于
/application/search/mysql/mysql-5.5.28/support-files/my-innodb-heavy-4G.cnf
二次优化

【删除--如果不使用主从同步】注释,去除无用日志文件
# log-bin=mysql-bin
# binlog_format=mixed

【修改链接】
# 最大链接值从100增加到512
max_connections = 512
# 错误链接从10改到100
max_connect_errors = 100

【*修改线程数】
# CPU逻辑线程数的2-4倍,我们搭载的CPU为8核心 × 2
thread_concurrency = 32

【设置默认引擎】
default-storage-engine=INNODB

【*修改innodb的内存】
# 改为16G,默认是128M,最大值设置为服务器内存的80%
innodb_buffer_pool_size = 16G

【*修改事物日志文件】
# 每秒刷新一次日志和磁盘设置为0,实时刷新日志文件和磁盘数据设置为1,每次写入日志,每秒刷新一次磁盘设置2
innodb_flush_log_at_trx_commit = 0

# 日志文件从256M改为1G
innodb_log_file_size = 1G

【修改日志文件位置,pid的位置】方便物理文件冷拷贝
# pid的位置,增加
pid-file=/application/search/mysql/mysql-5.5.30/tmp/mysqld.pid

# binlog的位置,/data0/search/mysql_binlog目录要提前手工建立
log-bin=/data0/search/mysql/log/mysql-bin

# 定义中继日志的位置和文件名:即复制日志
relay_log=/data0/search/mysql/log/mysql-relay-bin

# 慢查询日志位置,增加
slow_query_log
slow-query-log-file=/data0/search/mysql/log/slow_query.log
long_query_time = 2

# 使从服务器把复制的事件记录到自己的二进制日志中
log_slave_updates=1

日志参考文档
http://blog.sina.com.cn/s/blog_406127500100pvar.html

【编码与数据文件】
[mysql]
default-character-set=utf8

[mysqld]
datadir         = /data0/search/mysql/data
character-set-server=utf8

【*innodb分开数据文件】
innodb_file_per_table=1


【自动删除binlog】
设置自动清理MySQL binlog日志,配置my.cnf:
expire_logs_days = 10


【非关键故障排除】
could not be resolved: Temporary failure in name resolution
在mysql的配置文件my.cnf中
[mysqld]
节点添加下面两行,忽略dns解析
skip-host-cache
skip-name-resolve


【内存管理优化】
# *** INNODB Specific options ***
#操作系统内存分配程序使用控制——用户现在可以控制,
#InnoDB是使用自带的内存分配程序,
#还是使用当前部署的操作系统中现有的更高效的内存分配程序
#默认设置值为1,
#设置为0:表示Innodb使用自带的内存分配程序。
#设置为1:表示InnoDB使用操作系统的内存分配程序。
innodb_use_sys_malloc = 1


附件是本人在公司使用的线上系统优化方案,服务器为32G内存,双8线程CPU

你可能感兴趣的:(mysql)