MySQL服务器参数配置

news/2025/1/12 23:39:34/

本文是笔者整理了慕课网的《全面讲解MySQL架构设计》的第二章内容,提取出来的博客,方便在实际生产用按照属性条目,一条条进行配置和调优。

课程链接:https://coding.imooc.com/class/chapter/49.html#Anchor

MySQL服务器参数介绍

mysql参数介绍(客户端中执行),尽量只修改session级别的参数。

全局参数(新连接的session才会生效,原有已经连接的session不生效)

  • set global 参数名=参数值;
  • set @@global.参数名 :=参数值;

会话参数

  • set [session] 参数名=参数值;
  • set @@session.参数名 :=参数值;

内存配置相关参数

  • 确定可以使用的内存的上限
  • 确定mysql每个连接使用的内存
sort_buffer_size:需要注意,每个连接分配指定大小的内存;join_buffer_size;read_buffer_size;read_rnd_buffer_size。上述都为每个进程分别进行设置,所以要注意配置大小。
  • 确定需要为操作系统保留多少内存
  • 如何为缓存池分配内存
Innodb_buffer_pool_size:总内存 - (每个线程所需内存 * 连接数) - 系统保留内存key_buffer_size:主要用于myisam引擎

IO相关配置参数

Innodb I/O相关配置

  • Innodb_log_file_size:单个日志文件大小
  • Innodb_log_files_in_group:日志文件的个数

事务日志总大小:

Innodb_log_files_in_group * Innodb_log_file_size
  • Innodb_log_buffer_size:日志缓冲区大小
  • Innodb_flush_log_at_trx_commit:日志刷新的频率
0:每秒进行一次log写入cache,并flush log到磁盘。如果mysql关闭或重启会导致至少1秒日志的丢失。1:『默认』,在每次事务提交执行log写入cache,并flush log到磁盘。保证不会导致事务日志的丢失。2:【建议】,每次事务提交,执行log数据写入到cache。每秒执行一次flush log到磁盘。
  • Innodb_flush_method=O_DIRECT:Innodb刷新的方式。
  • Innodb_file_per_table=1:表空间。强烈建议启用。
  • Innodb_doublewrite=1:

Myisam I/O相关配置

  • delay_key_write
OFF:每次写操作后刷新新建缓冲区的脏块到磁盘
ON:只对建表是指定了delay_key_write选项的表使用延迟刷新。
ALL:对所有MYISAM表使用延迟键写入。会导致表损坏,使用相关命令进行修复。

安全相关配置参数

  • expire_logs_days指定自动清理binlog的天数
  • max_allowed_packet控制mysql可以接收的包的大小
  • skip_name_resolve禁用DNS查找
  • sysdate_is_now确保sysdate和now返回的日期是一样的。(同一条sql同时使用sysdate返回的结果有可能是不同的,因而建议启用)
  • read_only禁止非super用户写权限:在做主从复制时,建议备库启用这个配置项。
  • skip_slave_start警用slave自动恢复,(从服务器中进行配置)
  • sql_mode设置mysql所使用的sql模式。(建议不要在生产换环境中调整这个值,有可能会导致系统不可用)
strict_trans_tablesno_engine_subtitutionno_zero_dateno_zero_in_dateonly_full_group_by:select字句需要全部列出group by字段,否则报错。

其它常用配置参数

  • sync_binlog控制mysql如何向磁盘中刷新binlog
  • tmp_table_size和max_heap_table_size控制内存临时表的大小。两个值应保持一致
  • max_connections允许最大连接数,一般设置为2000都可以。

数据库设计对性能的影响(所有优化的重点,其它的所有优化加起来都未必有数据库设计优化对性能的影响大)

  • 过分的反范式话为表建立太多的列
  • 过多的范式话造成太多表的关联(最多只允许61个表关联)
  • 在OLTP中使用不恰当的分区表
  • 使用外键保证数据的完整性(性能很低,建议不要使用外键约束)

优化建议

性能优化顺序

  • 数据库结构和sql语句优化
  • 数据库引擎的选择和参数配置(不要混合使用存储引擎)
  • 系统选择及优化
  • 硬件升级

哎呀,如果我的名片丢了。微信搜索“全菜工程师小辉”,依然可以找到我

 


http://www.ppmy.cn/news/446726.html

相关文章

MYSQL优化服务器参数设置

1.通用 1.1数据文件存放的目录 datadir/var/lib/mysql 1.2mysql.socket表示server和client在同一台服务器,并且使用localhost进行连接,就会使用socket进行连接 socket/var/lib/mysql/mysql.sock 1.3存储mysql的pid pid_file/var/lib/mysql/mysql.pid …

位置服务器的参数,服务器配置参数详解

服务器配置参数详解 内容精选 换一换 Discuz!论坛是全球成熟度最高、覆盖率最大的论坛软件系统之一。用户对论坛的访问可分为高峰期和平峰期,若论坛采用多服务器部署模式且满足高峰时期的负载需求,平峰期必有部分服务器处于闲置状态,增加了不…

线上服务器Tomcat配置JVM参数

环境 Tomcat8.5,jdk8 配置参数说明 -Xms:初始堆大小 -Xmx:最大堆大小 -XX:NewSize:设置年轻代大小 -XX:NewRatio:设置年轻代和年老代的比值 -XX:SurvivorRatio:年轻代中E…

27个常见的MySQL服务器参数配置

充分理解 MySQL 配置文件中各个变量的意义对我们有针对性的优化 MySQL 数据库性能有非常大的意义。通常我们需要根据不同的数据量级,不同的生产环境情况对MySQ配置文件进行优化 Linux下 MySQL配置文件是 my.cnf 存放在 /etc/my.cnf、/etc/mysql/my.cnf,/usr/etc/my.…

服务器参数设置

服务器参数设置 通用参数(general)参数配置 参数含义datadir/var/lib/mysql数据文件存放的目录socket/var/lib/mysql/mysql.sockmysql.socket表示server和client在同一台服务器,并且使用localhost进行连接,就会使用socket进行连接pid_file/var/lib/mys…

服务器选型参数-如何计算

1 术语和定义1.1 信息系统由计算机、通信设备、处理设备、控制设备及其相关的配套设施构成,按照一定的应用目的和规则,对信息进行采集、加工、存储、传输、检索等处理的人机系统。1.2 软硬件平台指信息系统运行的环境,主要包括硬件&#xff0…

param参数服务器

声明:本文主要内容来自: MOOC 机器人操作系统入门.仅仅是为了查阅方便,做了个小结,侵权必删! Table of Contents 零.param介绍 0.0 param有什么用 0.1参数类型 二.如何使用----三种维护方式 2.1命令行维护 2.2.launch文件 2.2.1 yaml文件 2.3node源码 三.命名空间对para…

建站购买服务器前必看:服务器各参数的超详细说明

购买服务器前必看,服务器各参数的超详细说明: 一问:什么是服务器?服务器能干什么用?服务器有哪些类型? 答:服务器可看做一台可以处理数据的机器,功用类似于我们生活中的电脑,用于存…