MySQL 参数相关概念及查询更改方法
前言:
在前面一些文章中,经常能看到介绍某某参数的作用,可能有些小伙伴仍搞不清楚 MySQL 参数是啥。本篇文章我们来聊聊 MySQL 参数,学习下如何管理维护 MySQL 参数。
1.MySQL参数概念
我们所说的参数在官方文档中称为 系统变量 (system variable),不同的变量有着不同的作用。 MySQL 服务端维护了许多表示其配置的系统变量,所有变量均有默认值。一般可以在启动命令行中或配置文件中对它们进行设置。
系统变量分为全局系统变量(global)和会话系统变量(session)。有些变量既有全局变量又有会话变量,有些变量只有全局变量。全局变量影响服务器的全局操作,会话变量只影响具体客户端连接相关操作。若会话变量未单独设置,则继承自相应全局变量。
MySQL 服务启动时,会按照配置文件或命令行中指定的选项来给全局变量赋值,没有指定则按默认值处理。服务启动后,通过连接服务器并执行 SET GLOBAL var_name 语句可以动态更改部分全局变量的值。要想更改全局变量,必须具有 SUPER 权限。 MySQL 还为每个客户端连接维护会话变量,连接时使用相应全局变量的当前值对客户端会话变量进行初始化。客户端可以通过 SET SESSION var_name 语句来动态更改会话变量。设置会话变量不需要特殊权限,但会话变量只作用于当前连接。
2.参数查询与变更示例
这里也要说明下,并不是所有的参数都可以动态修改,某些参数只能写入配置文件然后重启数据库才能生效。下面我们来展示下 MySQL 参数的查询与修改。
# 参数查询 show global variables like 'var_name'; //查看全局系统变量的值,可使用%通配符 show session variables like 'var_name'; //查看会话系统变量的值 show variables like 'var_name'; //优先返回会话系统变量,若会话系统变量不存在,则返回全局系统变量。 # 也可用select查询某个特定参数 select @@global.var_name; //全局系统变量 select @@session.var_name; //会话系统变量 select @@var_name; //优先会话系统变量 # 查询示例 mysql> show global variables like 'server_id'; +---------------+---------+ | Variable_name | Value | +---------------+---------+ | server_id | 1003306 | +---------------+---------+ 1 row in set (0.00 sec) mysql> show global variables like 'log_bin%'; +---------------------------------+-------------------------------+ | Variable_name | Value | +---------------------------------+-------------------------------+ | log_bin | ON | | log_bin_basename | /data/mysql/logs/binlog | | log_bin_index | /data/mysql/logs/binlog.index | | log_bin_trust_function_creators | ON | | log_bin_use_v1_row_events | OFF | +---------------------------------+-------------------------------+ 5 rows in set (0.00 sec) mysql> select @@server_id; +-------------+ | @@server_id | +-------------+ | 1003306 | +-------------+ 1 row in set (0.00 sec) # 动态修改参数 set global var_name = value; set session var_name = value; set var_name = value; set @@global.var_name = value; set @@session.var_name = value; set @@var_name = value; # 参数修改示例 mysql> set global sort_buffer_size = 2097152; Query OK, 0 rows affected (0.00 sec) mysql> set session sort_buffer_size = 4194304; Query OK, 0 rows affected (0.00 sec) mysql> select @@global.sort_buffer_size,@@session.sort_buffer_size; +---------------------------+----------------------------+ | @@global.sort_buffer_size | @@session.sort_buffer_size | +---------------------------+----------------------------+ | 2097152 | 4194304 | +---------------------------+----------------------------+ 1 row in set (0.00 sec)
参数动态修改后,建议将其写入配置文件。因为动态修改的参数在 MySQL 服务重启后会失效,只有写入配置文件才能够重启后仍有效。对于一些无法动态修改的参数,我们只能通过修改配置文件,然后重启来使之生效。这里所说的配置文件就是 my.cnf 文件了,Linux 系统一般在 /etc 目录下;Windows 系统一般在 basedir 目录下,名称可命名为 my.ini 。大部分参数需要配置在 [mysqld] 下,一份简单的配置文件示例如下:
vi /etc/my.cnf # 简单模板如下: [mysqld] user = mysql datadir = /data/mysql/data socket = /data/mysql/tmp/mysql.sock pid-file = /data/mysql/tmp/mysqld.pid skip_name_resolve = 1 max_connections = 2000 lower_case_table_names = 1 log_timestamps=SYSTEM max_allowed_packet = 32M ...
MySQL 参数一般由 DBA 或运维来维护,可能有些同学对这些参数还比较陌生。建议在数据库初始化时,根据服务器规格设置对应的数据库参数。对于不清楚作用的参数,建议保持默认值即可。关于更多参数相关的内容,可以参考官方文档:
https://dev.mysql.com/doc/refman/5.7/en/server-system-variable-reference.html
总结:
本篇文章详细讲述了 MySQL 参数相关概念及查询更改方法,希望各位小伙伴能学到相关知识。
以上就是MySQL 参数相关概念及查询更改方法的详细内容,更多关于MySQL 参数的资料请关注猪先飞其它相关文章!
相关文章
- 这篇文章主要介绍了Mybatis Plus select 实现只查询部分字段的操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...2021-09-01
- 这篇文章主要介绍了MySQL性能监控软件Nagios的安装及配置教程,这里以CentOS操作系统为环境进行演示,需要的朋友可以参考下...2015-12-14
- 新版 Mysql 中加入了对 JSON Document 的支持,可以创建 JSON 类型的字段,并有一套函数支持对JSON的查询、修改等操作,下面就实际体验一下...2016-08-23
MyBatisPlus-QueryWrapper多条件查询及修改方式
这篇文章主要介绍了MyBatisPlus-QueryWrapper多条件查询及修改方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...2022-06-27- 这篇文章主要给大家介绍了关于Nest.js参数校验和自定义返回数据格式的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-03-28
深入研究mysql中的varchar和limit(容易被忽略的知识)
为什么标题要起这个名字呢?commen sence指的是那些大家都应该知道的事情,但往往大家又会会略这些东西,或者对这些东西一知半解,今天我总结下自己在mysql中遇到的一些commen sense类型的问题。 ...2015-03-15- 这篇文章主要介绍了Oracle使用like查询时对下划线的处理方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2021-03-16
- 这篇文章主要介绍了MySQL 字符串拆分操作(含分隔符的字符串截取),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-02-22
- 这篇文章主要介绍了解决mybatis-plus 查询耗时慢的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...2021-07-04
- 一、先说一下为什么要分表:当一张的数据达到几百万时,你查询一次所花的时间会变多,如果有联合查询的话,有可能会死在那儿了。分表的目的就在于此,减小数据库的负担,缩短查询时间。根据个人经验,mysql执行一个sql的过程如下:1...2014-05-31
PHP中empty和isset对于参数结构的判断及empty()和isset()的区别
废话不多说了,直接给大家贴代码了。<?php class test{} $a1 = null; $a2 = ""; //$a3 = $a4 = 0; $a5 = '0'; $a6 = false; $a7 = array(); //var $a8; $a9 = new test(); for ($i=1; $i <=9 ; $i++) {...2015-11-24- 这篇文章主要介绍了解决Springboot get请求是参数过长的情况,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-09-17
- 这篇文章主要介绍了java正则表达式判断前端参数修改表中另一个字段的值,需要的朋友可以参考下...2021-05-07
- 我们自己鼓捣mysql时,总免不了会遇到这个问题:插入中文字符出现乱码,虽然这是运维先给配好的环境,但是在自己机子上玩的时候咧,总得知道个一二吧,不然以后如何优雅的吹牛B。...2015-03-15
- mysql安装成功后有几个默认的配置模板,列表如下: my-huge.cnf : 用于高端产品服务器,包括1到2GB RAM,主要运行mysql my-innodb-heavy-4G.ini : 用于只有innodb的安装,最多有4GB RAM,支持大的查询和低流量 my-large.cnf : 用于...2015-03-15
- 这几天在centos下装mysql,这里记录一下安装的过程,方便以后查阅Mysql5.5.37安装需要cmake,5.6版本开始都需要cmake来编译,5.5以后的版本应该也要装这个。安装cmake复制代码 代码如下: [root@local ~]# wget http://www.cm...2015-03-15
- 宿主机使用网线的时候,客户机在Bridged Adapter模式下,使用Atheros AR8131 PCI-E Gigabit Ethernet Controller上网没问题。 宿主机使用无线的时候,客户机在Bridged Adapter模式下,使用可选项里唯一一个WIFI选项,Microsoft Virtual Wifi Miniport Adapter也无法上网,故弃之。...2013-09-19
- 这篇文章主要给大家介绍了关于C#中out参数、ref参数与值参数的用法及区别的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-06-25
- 这篇文章主要介绍了C#泛型的类型参数约束的相关资料,文中讲解非常细致,帮助大家更好的理解和学习c#,感兴趣的朋友可以了解下...2020-07-31
- 首先要声明一点,大部分情况下,修改MySQL密码是需要有mysql里的root权限的...2013-09-11