32G my.cnf配置样例 包含myisam和innodb配置

 以下是关于mysql 在32G物理内存,6核cpu下的配置,仅供参考。

innodb和myisam的配置根据实际数据库中表引擎使用的频率来做具体的调整。

如果innodb使用的多,那么innodb相应的参数就需要调大些。如:innodb_buffer_pool_size,innodb_buffer_pool_instances

如果myisam使用的多,那么myisam相应的参数就需要调大些。如:key_buffer_size

另外如果物理机除了运行mysql还有其他的程序,需要根据实际mysql能使用的内存来调整参数。

[mysqld]
server-id = 3

datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
#lower_case_table_names=1 #默认值为0.如果开启可能会影响数据库运行。修改该值最好重新到导入备份的数据库数据

#不允许datadir路径为软连接
symbolic-links=0

#skip-name-resolve #mysql主机查询DNS很慢或是有很多客户端主机时会导致连接很慢,该种情况需要开启此选项。开启状态下mysql的授权表中的host字段就不能够使用域名而只能够使用 ip地址
log_bin = mysql-bin

slow_query_log = 1
slow_query_log=on
slow_query_log_file=mysqld3306_slow.log
#min_examined_row_limit=100     #SQL语句检测的记录数少于设定值的语句不会被记录到慢查询日志,即使这个语句执行时间超过了long_query_time的阈值
#log_queries_not_using_indexes=1   #将没有使用索引的语句记录到慢查询日志
#log_throttle_queries_not_using_indexes=10     #设定每分钟记录到日志的未使用索引的语句数目,超过这个数目后只记录语句数量和花费的总时间
#log-slow-admin-statements=0    #记录执行缓慢的管理SQL,如alter table,analyze table, check table, create index, drop index, optimize table, repair table等。
log_slow_slave_statements=1    #记录从库上执行的慢查询语句
log_output=FILE     #指定慢查询日志的输出方式,从5.5版本开始可以记录到日志文件(FILE,慢查询日志)和数据库表(TABLE,mysql.slow_log)中

max_allowed_packet=200M        ### 该参数限制服务器端,接受的数据包大小,如果有BLOB子段,建议增大此值,避免写入或者更新出错。有BLOB子段,建议改为1024M
wait_timeout=3600             ###等待超时默认s
interactive_timeout=3600      ###活动超时

expire_logs_days = 180  #binlog保存的天数

character_set_server = utf8
#init-connect只会在连接时执行,不会对数据库产生大的性能影响
#init-connect是在连接时执行的动作命令,故可以用它来完成其它的功能,如:init_connect='SET autocommit=0'
#init-connect不会记录拥有super权限的用户记录,为了防止init_connect语句由于语法错误或权限问题而所有用户都登陆不了的情况,保证至少super用户能登陆并修改此值
#init_connect='SET NAMES utf8' 相当于:SET character_set_client = utf8;  SET character_set_results = utf8; SET character_set_connection = utf8;
init_connect='SET NAMES utf8'
max_connections = 1000
tmp_table_size = 64M # 内存临时表的最大值,默认16M
max_heap_table_size = 64M # 用户创建的内存表的大小,默认16M,往往和tmp_table_size一起设置,限制用户临时表大小。


#*** MyISAM 相关选项
key_buffer_size = 512M # 默认值 8M,建议值:对于内存在4GB左右的服务器该参数可设置为256M或384M
read_buffer_size = 262144 # 默认值128kb,建议值:16G内存建议1M;为每个扫描MyISAM的线程分配参数设置的内存大小缓冲区。


# 支持任何存储引擎
read_rnd_buffer_size = 1M # 默认值256kb;建议值:得参考连接数;MySQL的随机读缓冲区大小,适当增大,可以提高性能。
sort_buffer_size = 1M # 默认值256kb;建议值:得参考连接数,极端情况1M*maxconnectiosns
join_buffer_size = 1M # 默认值256kb;建议值:得参考连接数,极端情况1M*maxconnectiosns
table_open_cache_instances = 6 # 默认值1,建议值:cpu核数,并且<=16,该参数是myssql 5.6后引入的,目的是提高并发。
metadata_locks_hash_instances=32
#performance_schema=OFF #要求极致性能或者内存不足的时候可以将此项设置为off;

# innodb选项
# 说明:InnoDB使用一个缓冲池来保存索引和原始数据, 不像MyISAM.这里你设置越大,你在存取表里面数据时所需要的磁盘I/O越少.
# 在一个独立使用的数据库服务器上,你可以设置这个变量到服务器物理内存大小的60%-80%
# 注意别设置的过大,会导致system的swap空间被占用,导致操作系统变慢,从而减低sql查询的效率
# 默认值:128M,建议值:物理内存的60%-80%
innodb_buffer_pool_size = 1G
# 说明:只有当设置 innodb_buffer_pool_size 值大于1G时才有意义,小于1G,instances默认为1,大于1G,instances默认为8
# 但是网络上有评价,最佳性能,每个实例至少1G大小。
# 默认值:1或8,建议值:innodb_buffer_pool_size/innodb_buffer_pool_instances >= 1G
innodb_buffer_pool_instances = 1
innodb_log_files_in_group = 3 # 默认值2,建议值:根据你系统的磁盘空间和日志增长情况调整大小
innodb_log_file_size = 256M   # 默认值:48M,建议值:根据你系统的磁盘空间和日志增长情况调整大小
innodb_additional_mem_pool=16M #default:8M



[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

猜你喜欢

转载自blog.csdn.net/eaglejiawo1120/article/details/83508126