关于mysql:MySQL-配置基础

1次阅读

共计 1461 个字符,预计需要花费 4 分钟才能阅读完成。

MySQL 作为一种常见的数据库管理系统(DBMS),其本身的各种配置项极大的影响了其性能。所以有必要进行理解和学习。

配置学习资源路径

我最近在看《高性能 Mysql》,其中第 8 章解说了对于配置的很多事项,都值得理解和学习。当然,官网也是最新信息查阅的重要渠道。

官网【可在 5.1 TheMySQL Server 找到配置解释。可在 5.4 找到 BinLog 相干内容。】

MySQL 配置

配置文件地位:

一般来说,MySQL 服务端配置文件的默认地位是:/etc/my.cnf 或者 /etc/mysql/my.cnf
【也能够通过 mysqld --verbose --help|grep -A 1 'Default option' 确认配置文件的地位】

和 nginx 相似,也是分目录进行 include,便于查看。(比方 !includedir /etc/my.cnf.d

配置批改根底:

1、mysql 配置文件是分段的,要留神配置项放在了正确的段里(比方服务器次要用 [mysqld] 这一段

1、副作用:一些配置项会产生副作用 ,长期批改配置须要十分小心。(比方变更 query\_cache\_size 立刻删除所有查问的缓存,从新构建。
2、变量的值:变量不是越大越好,可能会导致内存替换或者超出地址空间。须要跟进状况设定。

2、配置项有不同的作用域,有的是全局,有的是会话。其次,还有动静变量,可在运行时批改。
3、全局变量:批改后对以后会话及已存在的会话均不失效。可通过 SHOW GLOBAL VARIABLES 确认。
4、变量的单位:配置时要留神单位,命令行或者配置文件,能够应用后缀指定单位(比方 1M 等,但要留神,应用 SQL 的 SET 指令时就不能应用单位
5、配置文件治理:最好应用 git 来进行 版本治理 ,加上短缺的 正文。能够防止不少问题。

如何创立一个靠谱的 MySQL 配置?

1、一个好的配置,不是从学习配置项开始,也不是询问怎么设置或者怎么批改,更不是察看服务器行为和询问哪个配置能够晋升性能。
【应该是从 了解 MySQL 内核和行为开始
2、保障 根底配置都正确 (比方日志门路,缓存配置,端口号,数据库存储地位等。 如非必要,尽量应用默认配置 。(默认配置禁受过的测试是最多的。
3、优先进行语句优化等其余优化, 最初 思考 批改配置项

一个最小配置示例

一般来说,抉择尽量少的配置(或者说最小配置),如无必要,不必申明(不申明应用默认值)。

当然一些十分重要的配置项,即便应用默认配置,也最好申明进去。(比方 default_storage_engine)

见《高性能 MySQL》P336

如何创立正当的 MySQL 配置文件?

{上面的配置项根本都基于上述参考最小配置}
1、Innodb 的配置项:

  • innodb_buffer_pool_size【最外围配置,innodb重大依赖缓冲池 。索引、行数据缓存、哈希索引,插入缓存、锁等。 必须 为 innodb 配置 足够的缓冲池。[《高性能 MySQL》P343
  • innodb_log_file_size【日志文件配置
  • innodb_file_per_table
  • innodb_flush_method

2、MySQL 配置项:

  • thread_cache【依据 Thread_connected 来判断,如果线程数较多,能够适当调大这个值。
  • table_cache

如何确认 MySQL 以后的状态变量?

1、SHOW GLOBAL STATUS
【或者能够通过 SHOW、innotop 等工具,确认 innodb 等的内存利用状况。
2、mysqladmin extended-status -ri60
每 60 秒查看状态变量的增值

正文完
 0