MySQL服务器参数配置

MySQL运行时的性能与配置参数有着密切的联系,为了保证我们的MySQL服务高效,就必须对各项参数进行优化。

MariaDB提供了多个适合不同规模的配置文件供选择和参考,位于/usr/share/mysql

[root@localhost ~]# ls /usr/share/mysql/my-*.cnf -l
-rw-r--r--. 1 root root  4920 5月   2 01:18 /usr/share/mysql/my-huge.cnf
-rw-r--r--. 1 root root 20441 5月   2 01:18 /usr/share/mysql/my-innodb-heavy-4G.cnf
-rw-r--r--. 1 root root  4907 5月   2 01:18 /usr/share/mysql/my-large.cnf
-rw-r--r--. 1 root root  4920 5月   2 01:18 /usr/share/mysql/my-medium.cnf
-rw-r--r--. 1 root root  2846 5月   2 01:18 /usr/share/mysql/my-small.cnf
[root@localhost ~]#

1. 内存配置参数

1.1 配置MySQL可以使用的内存上限
1.2 配置每个MySQL连接(线程)使用的内存
# 排序缓冲区
sort_buffer_size
# 连接查询缓冲区
join_buffer_size
# 对MyISAM进行全表扫描时的读缓冲区
read_buffer_size
# 索引缓冲区
read_rnd_buffer_size
1.3 为缓存池分配内存
# innodb缓存池:总内存-(每个线程内存*连接数)-系统保留内存;经验值为服务器内存的75%
Innodb_buffer_pool_size
# MyISAM缓存池:即使数据库表全部为InnoDB,也要分配此缓存池(因为MySQL系统表依然使用MyISAM引擎)
key_buffer_size
# 以下sql可以查看
mysql> select sum(index_length) from information_schema.tables where engine = 'myisam'\G;

2. IO配置参数

2.1 InnoDB
# 事务日志文件大小(如果业务繁忙,建议事务日志文件大小设置大些)
Innodb_log_file_size
# 事务日志文件数量
Innodb_log_files_in_group
# 事务日志缓冲区,不需要太大,32M-128M足够了(事务日志不是直接写入磁盘文件)
Innodb_log_buffer_size
# 事务日志刷新频率
#   0:每秒从缓冲区将log写入操作系统cache,并flush log到磁盘
#   1:每次提交事务,从缓冲区将log写入操作系统cache,并flush log到磁盘(默认)
#   2:每次提交事务,从缓冲区将log写入操作系统cache,每秒flush log到磁盘(建议)
Innodb_flush_log_at_trx_commit
# InnoDB数据文件和日志文件刷新方式
Innodb_flush_method=O_DIRECT(不缓存,直接写入存储设备,避免双重缓存)
# 设为1,InnoDB为每个表建立单独的表空间
Innodb_file_per_table=1(强烈建议)
# 双写缓冲,避免数据页没有写完整造成数据损坏,增加安全性
Innodb_doublewrite=1
2.2 MyISAM
# 延迟刷新关键字缓冲中的脏块到磁盘文件
# OFF:每次写操作后刷新键缓冲中的脏块到磁盘
# ON:只对制定了delay_key_write的表使用延迟刷新
# ALL:对所有表使用延迟刷新
delay_key_write

3. 安全配置参数

# 自动清理binlog日志的天数(至少覆盖两次全备间隔的天数)
expire_logs_days
# MySQL可以接受的包的大小 (建议32M左右)
max_allow_packet
# 禁用DNS查找(此时应使用ip授权,或者对MySQL服务器host中出现的域名授权)
skip_dns_resolve
# 确保sysdate()返回确定性日期
sysdate_is_now
# 禁止非super权限用户写操作(建议在从库中启用)
read_only
# 禁止slave重启后自动复制(建议在从库启用)
skip_slave_start
# MySQL使用的sql模式
sql_mode

4. 其它配置参数

# MySQL何时向磁盘刷新binlog
# 0:不主动刷新,操作系统决定何时刷新(默认为0)
# n:没n次写操作,向磁盘刷新binlog(建议Master设为1)
sync_binlog
# 控制内存临时表大小(设为一致,不要太大)
tmp_table_size和max_heap_table_size
# MySQL允许的最大连接数(默认为100,建议1000、2000...)
max_connections

最后,MySQL服务器参数配置应综合考虑硬件环境、操作系统以及业务场景等多种因素。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,657评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,662评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,143评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,732评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,837评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,036评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,126评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,868评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,315评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,641评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,773评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,470评论 4 333
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,126评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,859评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,095评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,584评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,676评论 2 351

推荐阅读更多精彩内容