MySQL系统变量配置基础
本文出处:http://www.cnblogs.com/wy123/p/6595556.html
MySQL变量的概念
个人认为可以理解成MySQL在启动或者运行过程中读取的一些参数问题,利用这些参数来启动服务、响应或者支持用户的请求等
变量的配置
如果打算长期使用,应该写入配置文件,而不是在命中指定,因为在命中设置的变量会随着MySQL服务的重启而恢复默认值
另外要注意是设置的当前Session的变量还是全局的变量。
变量单位
不同的变量的单位不同,比如table_cache是指缓存的表的个数,而key_buffer_size则是以字节为单位
另外还有以页或者百分比为单位的变量
许多变量可以通过后缀制订单位,
比如1M表示一百万字节,在配置文件中或者在命令行下有效,
但是在使用set命令的时候,这些单位就无效,必须使用数字,单位为字节
比如:set @@session.sort_buffer_size = 1024*1024或者set @@session.sort_buffer_size = 1048576
但是配置文件中设置的时候就不能使用表达式
变量的作用域
有些变量的作用是服务器级别的,有些是Session级别的,剩下的的一些是对象级别的。
许多回话的变量是全局变量相等,可以为是默认值
如果改变会话级的变量,它只影响当前Session,当前Session关闭后当前设置的参数会失效
举例:
query_cache_size是全局级的
sort_buffer_size可以在全局级设置,每个Session也可以独立设置
join_buffer_size可以在全局级设置,也可以在Session级设置,一个查询中如果有多个表关联,可以为每个关联分配一个join buffer
除了在配置文件中设置变量之外,(部分变量)也可以在运行时修改,MySQL称之为动态配置变量
比如: set global sort_buffer_size = 1024*1024*1024
set sort_buffer_size = 1024*1024*1024
set @@sort_buffer_size = 1024*1024*1024
set @@session.sort_buffer_size = 1024*1024*1024
set @@global.sort_buffer_size = 1024*1024*1024
常见变量的设置与获取资源说明:
key_buffer_size
为键缓冲区(key buffer,也叫键缓存key cache)分配所有指定的空间,
操作系统不会为该设置立马分配内存,而是等到使用的时候才分配。
table_cache_size
当有线程打开表时,MySQL会检查这个标量的值,如果大于缓存中表的数量,线程可以把最先打开的表放入缓存,
如果该值比缓存中的表数小,MySQL将从缓存中删除不常用的表
thread_cache_size
当有连接关闭时,MySQL检查缓存中是否还有空间来缓存线程。
如果有:则缓存改线程已被下次连接重用
如果没有:他讲销毁改线程而不再缓存,
缓存中使用的线程数,不会立即减少,只有在新的连接删除缓存中的一个线程并使用后才会减少
MySQL只在关闭连接时候才在缓冲中增减线程,在创建新的连接的时候才从缓存中删除线程
query_cache_size
MySQL启动的时候,一次性分配并且初始化这块内存,如果修改这个变量(即使设置为与当前值一样)
MySQL会立刻删除所有缓存的查询,重新分配这片缓存到指定大小,并且重新初始化内存
read_buffer_size
MySQL只会在查询需要时才会为该缓存分配内存,并且会一次性分配改参数指定大小的全部内存
read_rnd_buffer_size
MySQL只会在查询需要时才会为该缓存分配内存,并且只分配需要的内存大小而不是全部指定的大小
应该叫做,max_read_rnd_buffer_size
sort_buffer_size
MySQL只会在查询需要做排序操作的时候拆毁为该缓存分配内存,
一旦需要排序,MySQL就会立刻分配给改参数指定大小的全部内存,而不管排序是否需要这么大的内存。
由此可见,不用的变量,设置之后的启用时间,启用原理,生效方式等都是有一定差异的。
设置变量的潜在的影响
动态设置全局变量可能会导致意外的副作用。
某些变量改变后会立即生效,比如从缓冲中刷新赃块,从而引起服务器相应请求的一些不稳定甚至更严重的问题
MySQL系统变量配置基础的更多相关文章
- mysql系统变量查询
mysql系统变量包括全局变量(global)和会话变量(session),global变量对所有session生效,session变量包括global变量.mysql调优必然会涉及这些系统变量的调整 ...
- mysql 系统变量和session变量
mysql系统变量包括全局变量(global)和会话变量(session),global变量对所有session生效,session变量包括global变量.mysql调优必然会涉及这些系统变量的调整 ...
- MySQL系统变量sql_safe_updates总结
MySQL系统变量sql_safe_updates总结 在MySQL中,系统变量sql_safe_updates是个非常有意思的系统变量,在Oracle和SQL Server中都没有见过这样的参数 ...
- MySql环境变量配置
配置环境变量 前面步骤完成后安装好MySQL,为MySQL配置环境变量.MySQL默认安装在C:\Program Files下. 1)新建MYSQL_HOME变量,并配置:C:\Program Fil ...
- mysql环境变量配置(复制)
前面步骤完成后安装好MySQL,为MySQL配置环境变量.MySQL默认安装在C:\Program Files下. 1)新建MYSQL_HOME变量,并配置:C:\Program Files\MySQ ...
- jdk环境变量、maven环境变量、Mysql环境变量配置
jdk官网地址:http://www.oracle.com/index.htmlhttp://www.java.sun.com 一.配置 jdk环境变量1.新建JAVA_HOME,在变量值复制JDK安 ...
- MySQL环境变量配置方法
MySQL配置方法 下载免安装版本的MySQL数据库,大家根据自己的开发环境下载对应版本的数据库,我在此举例的是Windows系统下的配置方法,下载地址如下: https://dev.mysql.co ...
- cmd 启动mysql环境变量配置
win10系统:(其他系统类似,改环境变量就可以) 1.我的电脑,右键选择属性,进入系统页面 2.点击高级系统设置,进入系统属性页面 3.点击高级选项卡,点击环境变量,进入环境变量设置 4.选择系统变 ...
- MySQL系统变量auto_increment_increment与auto_increment_offset学习总结
在MySQL中,系统变量auto_increment_increment与auto_increment_offset是与自增列相关的两个参数变量.在官方文档中,将其划分为Replication Mas ...
随机推荐
- BCGcontrolBar(三) 添加表格(Grid)组件
表格组件和图表组件是BCG的亮点之一 如下图 BCG有众多的表格样式可供选择 下图是插入基本表格组件后的效果 首先在程序中添加 BasicGridCtrl.h BasicGridCtrl.cpp 因为 ...
- CentOS之Vim
安装 yum install -y vim-enhanced 移动光标 h或者向左的方向键:光标向左移动一个字符 l或者向右的方向键:光标向右移动一个字符 j或者向下的方向键:光标向下移动一个字符 ...
- remmina从linux远程桌面连接windows失败解决方法
删除如下文件,重新连接 rm ~/.freerdp/known_hosts
- lua开发
1:安装luaBridge git地址 https://github.com/vinniefalco/LuaBridge.git 2:编写程序 #include <lua.hpp> #in ...
- ELK+zookeeper+kafka+rsyslog集群搭建
前言 环境困境: 1.开发人员无法登陆服务器 2.各系统都有日志,日志数据分散难以查找 3.日志数据量大,查询忙,不能实时 环境要求: 1.日志需要标准化 集群流程图: 角色: 软件: 以 ...
- 《Linux 性能及调优指南》写在后面的话
感谢飞哥的翻译. 目前飞哥 (http://hi.baidu.com/imlidapeng)的网址已经不能访问了. <Linux 性能及调优指南>这本书的原文地址:http://www.r ...
- linux tomcat启动后无法访问
先是按网上资料先下载安装包,然后上传到linux,启动后发现8080端口并未被占用.查了很多资料,不知道神马原因了.最后用yum安装后就可以访问了. 教程如下: 本教程介绍在CentOS 7服务器上使 ...
- HTTP中Get、Post、Put与Delete。了解一下!
1.GET请求会向数据库发索取数据的请求,从而来获取信息,该请求就像数据库的select操作一样,只是用来查询一下数据,不会修改.增加数据,不会影响资源的内容,即该请求不会产生副作用.无论进行多少次操 ...
- (转)利用 SVG 和 CSS3 实现有趣的边框动画
目录 SVG 学习<一>基础图形及线段 SVG 学习<二>进阶 SVG世界,视野,视窗 stroke属性 svg分组 SVG 学习<三>渐变 SVG 学习<四 ...
- 压缩校验合并js之grunt搭建
1.在说grunt先认识几个grunt配置中的几个单词,concat(合并文件),uglify(压缩文件),jshint(检测代码规范),watch(实时监听修改的文件) 2.grunt是基于node ...