Mysql数据库基本配置建议
如下是数据库安装后的基本配置规范,提取了配置中最最通用的部分,给出数据库最基本的配置要求,且给出的参数是脱离应用,不会由于参数调整引起crash的,请大家回贴多多拍砖!
一.mysql配置文件my.cnf参考:
[mysqld]
#通用配置部分
port = 端口
socket = mysql_path/var/mysql.sock
table_cache = 512
thread_cache = 30
max_connections = 500
back_log = 400
max_connect_errors = 1000
thread_concurrency = 8
log-error=ecomdb-err.log
log-slow-queries = ecomdb-slow.log
long_query_time =1
mysql 4.1以上开启
#log-queries-not-using-indexes
若是主库,则开启binlog
#log-bin=ecomdb-master-bin
建议配置部分(若需结合应用寻求更多帮助,直接回贴问石展~~~~)
若使用innodb请开启如下配置
#innodb_buffer_pool_size = (内存的50%-80%,建议保守设置)
#innodb_additional_mem_pool_size = 100M
#innodb_log_file_size = 100M
#innodb_log_buffer_size = 16M
2.重要配置选项说明:
(1) 最大连接数
Max_connections为允许的并行客户端最大连接数,为避免连接数溢出引起连接拒绝,调大此值至500:
Max_connections = 500
(2) 最大错误连接数
Max_connect_errors为最大错误连接数,默认为10,当由于密码错误等原因引起与数据库和客户端中断超过该数目,则阻塞后面的连接。建议调大为1000:
Max_connect_errors = 1000
(3) 表缓存
table_cache为所有线程打开的表数目的缓存,增大该值可以增加mysqld需要的文件描述符的数量,建议调至512:
table_cache = 512
(4) 线程缓存
thread_cache为数据库端的线程缓存。如果新连接很多,可以增加该变量以提高性能。此参数和应用对数据库的连接数关系较大,一般比数据库的正常连接数稍大即可,可以考虑设置为30:
thread_cache = 30
(5) back_log
当主MySQL线程在短时间内得到许多连接请求时发挥作用。主线程需要花一些时间(尽管很少)来检查连接并启动一个新线程。back_log值说明 MySQL临时停止响应新请求前在短时间内可以堆起多少请求,可以考虑调整为400:
back_log = 400
(6) 慢查询日志
如下配置将时间超过 long_query_time(秒) 的慢查询记录到适当命名的慢查询日志文件中,以方便进行数据库优化,超时时间建议为1秒,此项必须开启。
log-slow-queries = ecomdb-slow.log
long_query_time =1
mysql 4.1以上开启,可记录未使用索引的sql
#log-queries-not-using-indexes
(7) 二进制日志
对于主库,需开启二进制日志,在灾难恢复及数据库同步时使用:
log-bin=sfdbwsz-master-bin
(8) 错误日志
将数据库严重错误时的信息写入指定文件名的日志文件中,数据库故障时需首先查看这些日志:
log-error=ecomdb-err.log
评论已关闭