Mysql 参数配置

本贴最后更新于 2396 天前,其中的信息可能已经时异事殊

一、配置文件

>配置文件:my.cnf

|My.cnf 参数配置|||
|----|
|

参数||描述|
|[client]|| 客户端读取的参数 |
|port|3306| 客户端登录使用的端口 |
|socket|xx/mysql.scok| 客户端使用的 socket 文件 |
|[mysqld]|| 服务端加载的参数 |
|port|3306| 服务器设置的端口号 |
|socket|xx/mysql.scok| 服务器设置的 Socket|
|log-bin|mysql-bin| 打开二进制功能,在做主从同步时,主服务器必须打开
为了安全及基于日志时间点或 postion 恢复时,也需要打开 |
|log_slave_updates| | 如果从服务作为其他主服务器时 (A->B->C),
需要在 B 上打开此项.在 B 上进行的更新会记录到二进制日志.|
|long_query_time|2| 执行时长超过此值,将会认为是慢查询.|
|log_slow_queries| | 打开慢查询记录. 超过"long_query_time"的值,
如果 log_long_format 被打开,那些没有使用索引的查询也会被记录.|
|log_long_format| | 没有使用索引的查询也被作为到慢速查询附加到慢速日志里 |
|back_log|50| 操作系统在监听队列中所能保持的连接数,
如出现"connection refused",需要增加此值 |
|skip-networking | | 不在 TCP/IP 端口上进行监听,
所有的进程都是在同一台服务器连接到本地的 mysqld,
连接通过 Unix sockets 或者命名管道进行,
这样将增强安全系数 |
|max_connections|100| 服务端同时连接的最大数 |
|max_connect_errors|10| 每个客户端连接最大的错误允许数量,
如果达到了此限制,将会被 MySQL 服务阻止直到执行了"FLUSH HOSTS"
或者服务重启,非法的密码以及其他在链接时的错误会增加此值 |
|table_cache |2048| 所有线程所打开表的数量,增加此值就增加了 mysqld 所需要的文件描述符的数量,
这样你需要确认在[mysqld_safe]中 "open-files-limit" 变量设置打开文件数量允许至少 4096|
|max_allowed_packet|16M| 服务所能处理的请求包的最大大小以及服务所能处理的最大的请求大小 |
|binlog_cache_size|1M| 在一个事务中 binlog 为了记录 SQL 状态所持有的 cache 大小,
如果你经常使用大的,多声明的事务,
你可以增加此值来获取更大的性能,
所有从事务来的状态都将被缓冲在 binlog 缓冲中然后在提交后一次性写入到 binlog 中
如果事务比此值大, 会使用磁盘上的临时文件来替代,
此缓冲在每个连接的事务第一次更新状态时被创建 |
|max_heap_table_size |64M| 独立的内存表所允许的最大容量,
此选项为了防止意外创建一个超大的内存表导致永尽所有的内存资源 |
|sort_buffer_size |8M| 排序缓冲被用来处理类似 ORDER BY 以及 GROUP BY 队列所引起的排序
如果排序后的数据无法放入排序缓冲, 一个用来替代的基于磁盘的合并分类会被使用
查看 "Sort_merge_passes" 状态变量,在排序发生时由每个线程分配 |
|join_buffer_size |8M| 此缓冲被使用来优化全联合(full JOINs 不带索引的联合),
类似的联合在极大多数情况下有非常糟糕的性能表现,
# 但是将此值设大能够减轻性能影响.
通过 "Select_full_join" 状态变量查看全联合的数量
# 当全联合发生时,在每个线程中分配 |
|thread_cache_size |8| 我们在 cache 中保留多少线程用于重用
当一个客户端断开连接后,如果 cache 中的线程还少于 thread_cache_size,
# 则客户端线程被放入 cache 中.|
|query_cache_size |64M| 查询缓冲常被用来缓冲 SELECT 的结果并且在下一次同样查询的时候不再执行直接返回结果
查看 "Qcache_lowmem_prunes" 状态变量来检查是否当前值对于你的负载来说是否足够高
表经常变化的情况下或者如果你的查询原文每次都不同,查询缓冲也许引起性能下降而不是性能提升 |
|query_cache_limit|2M| 只有小于此设定值的结果才会被缓冲,此设置用来保护查询缓冲,防止一个极大的结果集将其他所有的查询结果都覆盖.|
|tmp_table_size |64M| 内部(内存中)临时表的最大大小,如果一个表增长到比此值更大,将会自动转换为基于磁盘的表. 此限制是针对单个表的,而不是总和.|
|Innodb|| 存储引擎相关 |
|innodb_buffer_pool_size|2G |InnoDB 使用一个缓冲池来保存索引和原始数据,建议服务器物理内存大小的 80%|
|innodb_flush_log_at_trx_commit|2|0:每隔一秒,把事务日志缓存区的数据写到日志中,以及把日志文件的数据刷新到磁盘上.
1:每个事务提交时候,把事务日志从缓存区写到日志文件中,并且刷新日志文件的数据到磁盘上
2:每次提交后日志写入日志文件,但只有大约每秒将日志文件刷新到磁盘上.|
|innodb_log_buffer_size|8M| 来缓冲日志数据的缓冲区的大小,当此值快满时, InnoDB 将必须刷新数据到磁盘上.
由于基本上每秒都会刷新一次,所以没有必要将此值设置的太大 |
|innodb_log_file_size |256M| 在日志组中每个日志文件的大小,文件太小,频繁刷新,文件太大,恢复时间长 |

## 二、加载顺序 ### 1.Option Files Read on Windows Systems
File Name Purpose
%WINDIR%`\my.ini`, %WINDIR%\my.cnf Global options
C:\my.ini, C:\my.cnf Global options
_ BASEDIR _\my.ini, _ BASEDIR _\my.cnf Global options
defaults-extra-file The file specified with --defaults-extra-file, if any
``%APPDATA%\MySQL\.mylogin.cnf Login path options (clients only)

2.Option Files Read on Unix and Unix-Like Systems

File Name Purpose
/etc/my.cnf Global options
/etc/mysql/my.cnf Global options
_ SYSCONFDIR _/my.cnf Global options
$MYSQL_HOME/my.cnf Server-specific options (server only)
defaults-extra-file The file specified with --defaults-extra-file, if any
~/.my.cnf User-specific options
~/.mylogin.cnf User-specific login path options (clients only)
  • 数据库

    据说 99% 的性能瓶颈都在数据库。

    345 引用 • 742 回帖 • 1 关注
  • MySQL

    MySQL 是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发,目前属于 Oracle 公司。MySQL 是最流行的关系型数据库管理系统之一。

    693 引用 • 537 回帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...

推荐标签 标签

  • 数据库

    据说 99% 的性能瓶颈都在数据库。

    345 引用 • 742 回帖 • 1 关注
  • Facebook

    Facebook 是一个联系朋友的社交工具。大家可以通过它和朋友、同事、同学以及周围的人保持互动交流,分享无限上传的图片,发布链接和视频,更可以增进对朋友的了解。

    4 引用 • 15 回帖 • 441 关注
  • 印象笔记
    3 引用 • 16 回帖 • 2 关注
  • NGINX

    NGINX 是一个高性能的 HTTP 和反向代理服务器,也是一个 IMAP/POP3/SMTP 代理服务器。 NGINX 是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开发的,第一个公开版本 0.1.0 发布于 2004 年 10 月 4 日。

    315 引用 • 547 回帖
  • App

    App(应用程序,Application 的缩写)一般指手机软件。

    91 引用 • 384 回帖 • 1 关注
  • Netty

    Netty 是一个基于 NIO 的客户端-服务器编程框架,使用 Netty 可以让你快速、简单地开发出一个可维护、高性能的网络应用,例如实现了某种协议的客户、服务端应用。

    49 引用 • 33 回帖 • 35 关注
  • 小说

    小说是以刻画人物形象为中心,通过完整的故事情节和环境描写来反映社会生活的文学体裁。

    31 引用 • 108 回帖
  • 持续集成

    持续集成(Continuous Integration)是一种软件开发实践,即团队开发成员经常集成他们的工作,通过每个成员每天至少集成一次,也就意味着每天可能会发生多次集成。每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽早地发现集成错误。

    15 引用 • 7 回帖
  • Docker

    Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的操作系统上。容器完全使用沙箱机制,几乎没有性能开销,可以很容易地在机器和数据中心中运行。

    494 引用 • 928 回帖
  • Bug

    Bug 本意是指臭虫、缺陷、损坏、犯贫、窃听器、小虫等。现在人们把在程序中一些缺陷或问题统称为 bug(漏洞)。

    76 引用 • 1742 回帖 • 1 关注
  • V2Ray
    1 引用 • 15 回帖 • 3 关注
  • RYMCU

    RYMCU 致力于打造一个即严谨又活泼、专业又不失有趣,为数百万人服务的开源嵌入式知识学习交流平台。

    4 引用 • 6 回帖 • 53 关注
  • GitLab

    GitLab 是利用 Ruby 一个开源的版本管理系统,实现一个自托管的 Git 项目仓库,可通过 Web 界面操作公开或私有项目。

    46 引用 • 72 回帖 • 1 关注
  • 心情

    心是产生任何想法的源泉,心本体会陷入到对自己本体不能理解的状态中,因为心能产生任何想法,不能分出对错,不能分出自己。

    59 引用 • 369 回帖 • 1 关注
  • Hibernate

    Hibernate 是一个开放源代码的对象关系映射框架,它对 JDBC 进行了非常轻量级的对象封装,使得 Java 程序员可以随心所欲的使用对象编程思维来操纵数据库。

    39 引用 • 103 回帖 • 722 关注
  • Office

    Office 现已更名为 Microsoft 365. Microsoft 365 将高级 Office 应用(如 Word、Excel 和 PowerPoint)与 1 TB 的 OneDrive 云存储空间、高级安全性等结合在一起,可帮助你在任何设备上完成操作。

    5 引用 • 34 回帖
  • 星云链

    星云链是一个开源公链,业内简单的将其称为区块链上的谷歌。其实它不仅仅是区块链搜索引擎,一个公链的所有功能,它基本都有,比如你可以用它来开发部署你的去中心化的 APP,你可以在上面编写智能合约,发送交易等等。3 分钟快速接入星云链 (NAS) 测试网

    3 引用 • 16 回帖
  • 资讯

    资讯是用户因为及时地获得它并利用它而能够在相对短的时间内给自己带来价值的信息,资讯有时效性和地域性。

    56 引用 • 85 回帖
  • 书籍

    宋真宗赵恒曾经说过:“书中自有黄金屋,书中自有颜如玉。”

    78 引用 • 396 回帖 • 1 关注
  • CongSec

    本标签主要用于分享网络空间安全专业的学习笔记

    1 引用 • 1 回帖 • 28 关注
  • PHP

    PHP(Hypertext Preprocessor)是一种开源脚本语言。语法吸收了 C 语言、 Java 和 Perl 的特点,主要适用于 Web 开发领域,据说是世界上最好的编程语言。

    179 引用 • 408 回帖 • 488 关注
  • 开源中国

    开源中国是目前中国最大的开源技术社区。传播开源的理念,推广开源项目,为 IT 开发者提供了一个发现、使用、并交流开源技术的平台。目前开源中国社区已收录超过两万款开源软件。

    7 引用 • 86 回帖 • 1 关注
  • GraphQL

    GraphQL 是一个用于 API 的查询语言,是一个使用基于类型系统来执行查询的服务端运行时(类型系统由你的数据定义)。GraphQL 并没有和任何特定数据库或者存储引擎绑定,而是依靠你现有的代码和数据支撑。

    4 引用 • 3 回帖 • 4 关注
  • H2

    H2 是一个开源的嵌入式数据库引擎,采用 Java 语言编写,不受平台的限制,同时 H2 提供了一个十分方便的 web 控制台用于操作和管理数据库内容。H2 还提供兼容模式,可以兼容一些主流的数据库,因此采用 H2 作为开发期的数据库非常方便。

    11 引用 • 54 回帖 • 666 关注
  • TGIF

    Thank God It's Friday! 感谢老天,总算到星期五啦!

    289 引用 • 4492 回帖 • 652 关注
  • Google

    Google(Google Inc.,NASDAQ:GOOG)是一家美国上市公司(公有股份公司),于 1998 年 9 月 7 日以私有股份公司的形式创立,设计并管理一个互联网搜索引擎。Google 公司的总部称作“Googleplex”,它位于加利福尼亚山景城。Google 目前被公认为是全球规模最大的搜索引擎,它提供了简单易用的免费服务。不作恶(Don't be evil)是谷歌公司的一项非正式的公司口号。

    49 引用 • 192 回帖 • 1 关注
  • OpenResty

    OpenResty 是一个基于 NGINX 与 Lua 的高性能 Web 平台,其内部集成了大量精良的 Lua 库、第三方模块以及大多数的依赖项。用于方便地搭建能够处理超高并发、扩展性极高的动态 Web 应用、Web 服务和动态网关。

    17 引用 • 55 关注