mysql 性能配置优化
Posted mywebnumber
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql 性能配置优化相关的知识,希望对你有一定的参考价值。
修改mysql配置文件 my.cnf ,内容如下:
[mysqld]
datadir=/data/mysql/data
socket=/var/lib/mysql/mysql.sock
user=mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
# 设置默认字符集,避免无法输入中文
character_set_server=utf8
init_connect=‘SET NAMES utf8‘
# 设置表名不区分大小写
lower_case_table_names=1
# 禁止MySQL对外部连接进行DNS解析,使用这一选项可以消除MySQL进行DNS解析的时间。但需要注意,如果开启该选项,则所有远程主机连接授权都要使用IP地址方式,否则MySQL将无法正常
处理连接请求
skip-name-resolve
# key_buffer_size指定用于索引的缓冲区大小,增加它可得到更好的索引处理性能。对于内存在4GB左右的服务器该参数可设置为256M或384M。注意:该参数值设置的过大反而会是服务器整体
效率降低
key_buffer_size = 128M
# 限制server接受的数据包大小,对大插入和更新有很大影响
max_allowed_packet = 4M
thread_stack = 256K
# 查询排序时所能使用的缓冲区大小。注意:该参数对应的分配内存是每连接独占,如果有100个连接,那么实际分配的总共排序缓冲区大小为100 × 6 = 600MB。所以,对于内存在4GB左右的
服务器推荐设置为6-8M
sort_buffer_size = 6M
# 查询排序时所能使用的缓冲区大小。注意:该参数对应的分配内存是每连接独占,如果有100个连接,那么实际分配的总共排序缓冲区大小为100 × 6 = 600MB。所以,对于内存在4GB左右的
服务器推荐设置为6-8M
read_buffer_size = 24M
# 联合查询操作所能使用的缓冲区大小,和sort_buffer_size一样,该参数对应的分配内存也是每连接独享
join_buffer_size = 8M
# 物理内存越大,设置就越大.默认为2402,调到512-1024最佳
table_cache = 512
# 默认为256K
thread_cache_size = 64
# 默认为60M
query_cache_size = 64M
# 指定MySQL允许的最大连接进程数。如果在访问论坛时经常出现Too Many Connections的错误提 示,则需要增大该参数值
max_connections = 100
# 指定一个请求的最大连接时间,对于4GB左右内存的服务器可以设置为5-10
wait_timeout = 10
# 该参数取值为服务器逻辑CPU数量*2
thread_concurrency = 4
innodb_thread_concurrency=8
#物理内存越大,设置就越大.默认为2402,调到512-1024最佳
table_cache=512
#默认为2M
innodb_additional_mem_pool_size=4M
#设置为0就是等到innodb_log_buffer_size列队满后再统一储存,默认为1
innodb_flush_log_at_trx_commit=1
innodb_log_buffer_size=2M
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
[client]
socket=/var/lib/mysql/mysql.sock
以上是关于mysql 性能配置优化的主要内容,如果未能解决你的问题,请参考以下文章