MySQL系统变量(systemvariables)_MySQL
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了MySQL系统变量(systemvariables)_MySQL,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含5922字,纯文字阅读大概需要9分钟。
内容图文
![MySQL系统变量(systemvariables)_MySQL](/upload/InfoBanner/zyjiaocheng/580/a59741a9af7947c4a84b77cb9c6b6dbc.jpg)
1、什么是系统变量
对于有关涉及到size的设置值,可以使用后缀K、M或G分别表示千字节、兆字节或gigabytes,不区分大小写。
--当前的版本 mysql> show variables like 'version%'; +-------------------------+------------------------------+ | Variable_name | Value | +-------------------------+------------------------------+ | version | 5.5.37 | | version_comment | MySQL Community Server (GPL) | | version_compile_machine | x86_64 | | version_compile_os | Linux | +-------------------------+------------------------------+ --获取有关set的帮助 mysql> help set Name: 'SET' Description: Syntax: SET variable_assignment [, variable_assignment] ... variable_assignment: user_var_name = expr | [GLOBAL | SESSION] system_var_name = expr | [@@global. | @@session. | @@]system_var_name = expr --查看全部系统变量 root@localhost[tempdb]> show variables; --该命令会输出当前系统全部系统变量 --查看sort_buffer mysql> show variables like 'sort_buffer%'; +------------------+---------+ | Variable_name | Value | +------------------+---------+ | sort_buffer_size | 2097152 | +------------------+---------+ --在省略global与session关键字的情形下为session级别 mysql> set sort_buffer_size=1024*1024*4; --设置为4M mysql> show variables like 'sort_buffer%'; +------------------+---------+ | Variable_name | Value | +------------------+---------+ | sort_buffer_size | 4194304 | +------------------+---------+ --恢复到缺省值 mysql> set sort_buffer_size=default; mysql> show variables like 'sort_buffer%'; +------------------+---------+ | Variable_name | Value | +------------------+---------+ | sort_buffer_size | 2097152 | +------------------+---------+ 3、全局与会话级别设置示例
--如何设置隔离级别 mysql> help isolation Name: 'ISOLATION' Description: Syntax: SET [GLOBAL | SESSION] TRANSACTION ISOLATION LEVEL { REPEATABLE READ | READ COMMITTED | READ UNCOMMITTED | SERIALIZABLE } --下面我们通过演示隔离级别来设置全局与session级别变量 --查看当前session级别的隔离方式 root@localhost[(none)]> show variables like '%isolation%'; +---------------+-----------------+ | Variable_name | Value | +---------------+-----------------+ | tx_isolation | REPEATABLE-READ | +---------------+-----------------+ --修改当前session级别的隔离方式为READ-COMMITTED root@localhost[(none)]> set session transaction isolation level read committed; root@localhost[(none)]> show variables like '%isolation%'; +---------------+----------------+ | Variable_name | Value | +---------------+----------------+ | tx_isolation | READ-COMMITTED | +---------------+----------------+ --另外的一个session , 登录用户为fred --当前sessioin级别继承全局隔离级别为REPEATABLE-READ fred@localhost[(none)]> show variables like '%isolation%'; +---------------+-----------------+ | Variable_name | Value | +---------------+-----------------+ | tx_isolation | REPEATABLE-READ | +---------------+-----------------+ --在root会话中设置全局隔离级别为serializable root@localhost[(none)]> set global transaction isolation level serializable; --注意,在root会话中 session级别还是为READ-COMMITTED root@localhost[(none)]> show variables like '%isolation%'; +---------------+----------------+ | Variable_name | Value | +---------------+----------------+ | tx_isolation | READ-COMMITTED | +---------------+----------------+ --在root会话中我可以看到全局的值已经变为SERIALIZABLE root@localhost[(none)]> show global variables like '%isolation%'; +---------------+--------------+ | Variable_name | Value | +---------------+--------------+ | tx_isolation | SERIALIZABLE | +---------------+--------------+ --在fred中全局的也变成了SERIALIZABLE fred@localhost[(none)]> show global variables like '%isolation%'; +---------------+--------------+ | Variable_name | Value | +---------------+--------------+ | tx_isolation | SERIALIZABLE | +---------------+--------------+ --从上面的演示来说,无论global级别如何设置,不会影响到当前session级别的设置 --下面我们使用一个新用户登录来看看全局设置是否影响新会话 robin@SZDB:~> mysql -urobin --如下查询新会话的隔离级别等于全局的隔离级别 robin@localhost[(none)]> show variables like '%isolation%'; +---------------+--------------+ | Variable_name | Value | +---------------+--------------+ | tx_isolation | SERIALIZABLE | +---------------+--------------+ 4、如何获取变量值
除了通过前面演示的使用show global|session variables like 'vari_name'方式之外,我们可以通过查询 information_schema数据中特定的表来获得这些变量的值。 通过查询数据information_schema的表global_variables root@localhost[information_schema]> select variable_value from global_variables where -> variable_name='tx_isolation'; +----------------+ | variable_value | +----------------+ | SERIALIZABLE | +----------------+ --Author: Leshami --Blog : http://blog.csdn.net/leshami root@localhost[information_schema]> select @@global.tx_isolation; +-----------------------+ | @@global.tx_isolation | +-----------------------+ | SERIALIZABLE | +-----------------------+ root@localhost[information_schema]> select @@session.tx_isolation; +------------------------+ | @@session.tx_isolation | +------------------------+ | READ-COMMITTED | +------------------------+ --下面查询session_variables结果与查询global_variables获得的值相同,究其原因还在进一步研究中 root@localhost[information_schema]> select * from session_variables where variable_name='tx_isolation'; +---------------+----------------+ | VARIABLE_NAME | VARIABLE_VALUE | +---------------+----------------+ | TX_ISOLATION | SERIALIZABLE | +---------------+----------------+
5、总结
b、检索设置
c、其他注意事项
内容总结
以上是互联网集市为您收集整理的MySQL系统变量(systemvariables)_MySQL全部内容,希望文章能够帮你解决MySQL系统变量(systemvariables)_MySQL所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。