| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 系统运维 -> MySQL 配置文件 my.cnf / my.ini 逐行详解 -> 正文阅读 |
|
[系统运维]MySQL 配置文件 my.cnf / my.ini 逐行详解 |
本文首发:MySQL 配置文件 my.cnf / my.ini 逐行详解 - 卡拉云 这里写目录标题MySQL 配置文件的意义充分理解 MySQL 配置文件中各个变量的意义对我们有针对性的优化 MySQL 数据库性能有非常大的意义。我们需要根据不同的数据量级,不同的生产环境情况对 MySQL 配置文件进行优化。 Windows 和 Linux 下的 MySQL 配置文件的名字和存放位置都是不同的,WIndows 下 MySQL 配置文件是 另外要注意的是,通过 rpm 命令安装的 MySQL 是没有 本教程将带领大家逐条解析最新的 MySQL 8.0 的配置文件,争取搞懂每一条变量。当然,我们理解了变量的意义外,更重要的是针对自己的数据库外部环境,在实践中进行微调,以达到优化性能的目的。 提示:你可以使用 Ctrl+F 快速定位。 MySQL 配置文件详解
MySQL 配置文件详解文件位置: Windows、Linux、Mac 有细微区别,Windows 配置文件是 .ini,Mac/linux 是 .cnf
当然我们也可以使用命令来查看 MySQL 默认配置文件位置
[client]客户端设置。当前为客户端默认参数
默认连接端口为
本地连接的
设置字符集,通常使用 [mysqld_safe]
此为 MySQL 打开的文件描述符限制,它是 MySQL 中的一个全局变量且不可动态修改。它控制着 mysqld 进程能使用的最大文件描述符数量。默认最小值为 1024 需要注意的是这个变量的值并不一定是你在这里设置的值,mysqld 会在系统允许的情况下尽量取最大值。 当 当
用户名
错误 log 记录文件 [mysqld]服务端基本配置
mysqld 服务端监听端口
MySQL 客户端程序和服务器之间的本地通讯指定一个套接字文件
允许最大接收数据包的大小,防止服务器发送过大的数据包。 当发出长查询或 mysqld 返回较大结果时,mysqld 才会分配内存,所以增大这个值风险不大,默认 16M,也可以根据需求改大,但太大会有溢出风险。取较小值是一种安全措施,避免偶然出现但大数据包导致内存溢出。
创建数据表时,默认使用的存储引擎。这个变量还可以通过
最大连接数,当前服务器允许多少并发连接。默认为 100,一般设置为小于 1000 即可。太高会导致内存占用过多,MySQL 服务器会卡死。作为参考,小型站设置 100 - 300
用户最大的连接数,默认值为 50 一般使用默认即可。
线程缓存,用于缓存空闲的线程。这个数表示可重新使用保存在缓存中的线程数,当对方断开连接时,如果缓存还有空间,那么客户端的线程就会被放到缓存中,以便提高系统性能。我们可根据物理内存来对这个值进行设置,对应规则 1G 为 8;2G 为 16;3G 为 32;4G 为 64 等。 Query Cache
设置为 0 时,则禁用查询缓存(尽管仍分配 设置为 1 时 ,除非指定 设置为 2 时,则仅缓存带有 请注意,如果在禁用查询缓存的情况下启动服务器,则无法在运行时启用服务器。
缓存 查询缓存会存储一个 如果之后接收到一个相同的查询,服务器会从查询缓存中检索结果,而不是再次分析和执行这个同样的查询。 如果你的环境中写操作很少,读操作频繁,那么打开query_cache_type=1,会对性能有明显提升。如果写操作频繁,则应该关闭它(query_cache_type=0)。
MySQL 执行排序时,使用的缓存大小。增大这个缓存,提高 group by,order by 的执行速度。
HEAP 临时数据表的最大长度,超过这个长度的临时数据表 MySQL 可根据需求自动将基于内存的 HEAP 临时表改为基于硬盘的 MyISAM 表。我们可通过调整
MySQL 读入缓存的大小。如果对表对顺序请求比较频繁对话,可通过增加该变量值以提高性能。
用于表的随机读取,读取时每个线程分配的缓存区大小。默认为 256k ,一般在 128 - 256k之间。在做 order by 排序操作时,会用到
程序中经常会出现一些两表或多表 Join (联表查询)的操作。为了减少参与 Join 连表的读取次数以提高性能,需要用到 Join Buffer 来协助 Join 完成操作。当 Join Buffer 太小时,MySQL 不会将它写入磁盘文件。和
限制不使用文件描述符存储在缓存中的表定义的数量。
限制为所有线程在内存中打开的表数量。 扩展阅读:《在 MySQL 中 DATETIME 和 TIMESTAMP 时间类型的区别及使用场景》 MySQL 错误日志设置
扩展阅读:《MySQL「 Every derived table must have its own alias」错误 ERROR 1248 修复方法》 MySQL 慢查询记录
关于 MySQL 慢查询日志更多扩展内容,请看《如何使用慢查询日志对 MySQL 进行性能优化 - Profiling、mysqldumpslow 实例详解》 MySQL 全局查询日志
这一段比较好理解,存放文件名,是否开启日志记录
控制二进制日志缓存大小,增加其值可改善处理大事务的系统的性能。在具有大量数据库连接的环境中应限制该值。
如果二进制日志处于活动状态,则此变量确定在每次事务中保存二进制日志更改记录的缓存的每个连接的字节大小。单独的变量 该
如果二进制日志在写入后超出此大小,则服务器会通过关闭它并打开新的二进制日志来旋转它。 单个事务将始终存储在同一二进制日志中,因此服务器将等待未完成的事务在轮换之前完成。 如果将
控制 binlog 写磁盘频率
自动二进制日志文件删除的天数。默认值为 0,table 示“不自动删除”。在启动时和清除二进制日志时,可能会删除它们。
此变量设置二进制日志记录格式,并且可以是
对于 MySQL 基于行的复制,此变量确定如何将行图像写入二进制日志。 从属线程变量
如果设置为 0 (默认值),则复制期间从主服务器接收到的从服务器上的更新不会记录在从服务器的二进制日志中。如果设置为 1 ,则为。需要启用从站的二进制日志才能生效。
安全变量
此变量控制LOAD DATA语句的服务器端LOCAL功能。根据local_infile设置,服务器会拒绝或允许 Client 端启用LOCAL的 Client 端加载本地数据。
检查 Client 端连接时是否解析主机名。如果此变量是 0 ,则 mysqld 在检查 Client 端连接时解析主机名。 如果是 1 ,则 mysqld 仅使用 IPNumbers;在这种情况下,授权 table 中的所有Host列值都必须是 IP 地址 MyISAM 变量
设置 如果指定多个值,请用逗号分隔。在服务器启动时指定没有值的变量与指定DEFAULT相同,指定显式值""会禁用恢复(与OFF的值相同)。 如果启用了恢复,则每次 mysqld 打开 MyISAMtable 时,它都会检查该 table 是否标记为已崩溃或未正确关闭。 (只有在禁用外部锁定的情况下运行,最后一个选项才起作用.)在这种情况下, MEMORY 变量
此变量设置允许用户创建的 变量的值用于计算 服务器重新启动还会将现有 MEMORYtable 的最大大小设置为全局 InnoDB 变量
控制缓存表和索引数据的 InnoDB 缓冲池的内存大小
此为独立表空间模式,每个数据库的每个表都会生成一个数据空间。当删除或截断一个数据库表时,你也可以回收未使用的空间。这样配置的另一个好处是你可以将某些数据库表放在一个单独的存储设备。这可以大大提升你磁盘的I/O负载。 独立表空间优点: 每个表都有自已独立的表空间。 每个表的数据和索引都会存在自已的表空间中。 可以实现单表在不同的数据库中移动。 空间可以回收(除drop table操作处,表空不能自已回收) 缺点:单表增加过大,如超过100G 结论:共享表空间在Insert操作上少有优势。其它都没独立表空间表现好。当启用独立表空间时,请合理调整:innodb_open_files
Innodb使用后台线程处理数据页上的读写 I/O(输入输出)请求,根据你的 CPU 核数来更改,默认是4 #注:这两个参数不支持动态改变,需要把该参数加入到my.cnf里,修改完后重启MySQL服务,允许值的范围从1-64
您可以将
这个选项决定着什么时候把日志信息写入日志文件以及什么时候把这些文件物理地写(术语称为”同步”)到硬盘上。 当设为 0 , 当设为 1 时,每次提交事务的时候,都会将 当设为 2 ,每次提交事务都会写日志,但并不会执行刷的操作。每秒定时会刷到日志文件。要注意的是,并不能保证100%每秒一定都会刷到磁盘,这要取决于进程的调度。
此参数确定些日志文件所用的内存大小,以M为单位。缓冲区更大能提高性能,但意外的故障将会丢失数据。事务日志所使用的缓存区。
事务日志文件写操作缓存区的最大长度。更大的设置可以提高性能,但也会增加恢复故障数据库所需的时间 Galera specific MySQL parameter default_storage_engine = InnoDB 服务器启动时必须启用默认存储引擎,否则服务器将无法启动。默认设置是 MyISAM。 这项设置还可以通过
当值为 1 时,默认情况下,日志缓冲区被写入
为 0 是传统锁定模式。 1 是连续锁定模式。 2 是交错锁定模式。
扩展阅读:《如何在 MySQL / MariaDB 中查找和删除重复记录? - 4 种 MySQL 数据去重法》 WSREP 配置
通常不同版本的 Linux 位置
集群的名称。节点无法连接到名称不同的集群,因此在同一集群中的所有节点上都必须相同。
启动时要连接的群集节点的地址
此节点的名称。此名称可以在wsrep_sst_donor中用作首选供体。请注意,集群中的多个节点可以具有相同的名称。
以
这是节点用来侦听客户端连接的地址。如果未指定地址或将其设置为 AUTO (默认),则
设置为 1 时(默认为 0 ),则在整个集群中强制执行读取提交的特征。 如果主机比从机更快地应用事件,则两者可能会短暂地不同步。 在将此变量设置为 1 的情况下,从属将等待事件应用,然后再处理其他查询。
用于进行状态快照传输(SST)的方法。可选方法有 rsync,mysqldump ,xtrabackup , xtrabackup-v2, mariabackup
用于复制的用户名和密码。如果wsrep_sst_method设置为 rsync ,则不使用,而对于其他方法,它的格式应为
这是集群中其他节点(供体)连接到的地址,用于发送状态转移更新。如果未指定地址或将其设置为 AUTO (默认),则
#关闭自动补全
数据包或生成的/中间的字符串的最大大小(以字节为单位)。 数据包消息缓冲区使用 如果更改此值,则也应该在客户端更改它。
此为修改 mysql 提示符内容的变量。我们自定义提示符信息。通过配置可以显示登入的主机地址,登陆用户名,当前时间,当前数据库等信息。
#限制接受的数据包大小,这里的值为 MySQL 服务器端和客户端在一次传送数据包的过程当中数据包的大小 扩展阅读:《最好用的 10 款 MySQL GUI 管理工具横向测评》 卡拉云 - 新一代低代码开发工具MySQL 配置文件对于优化数据库性能有着极大的意义,我们不仅要搞懂每一行代码的意义,更要结合实际情况,在实践中边改边测,最终达到性能最大化的目标。 如果你想在你的 MySQL 数据库上构建应用工具,可以试试卡拉云,卡拉云是新一代低代码开发工具,免安装部署,可一键接入包括 MySQL 在内的常见数据库及 API。不仅可以完成 Workbench 所有功能,还可根据自己的工作流,定制开发。无需繁琐的前端开发,只需要简单拖拽,即可快速搭建企业内部工具。数月的开发工作量,使用卡拉云后可缩减至数天,。 卡拉云可一键接入常见的数据库及 API 卡拉云可根据公司工作流需求,轻松搭建数据看板,并且可分享给组内的小伙伴共享数据 下图为使用卡拉云在 5 分钟内搭建的「优惠券发放核销」后台,仅需要简单拖拽即可快速生成前端组件,只要会写 SQL,便可搭建一套趁手的数据库工具。欢迎试用卡拉云。 有关 MySQL 教程,可继续拓展学习: |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/16 4:38:11- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |