mysql系统变量配置文件_MySQL系统变量配置基础
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的相关技术说明_MySQL 系统架构 说明
说明:本文转自 简朝阳(MySQL ACE)的 <MySQL性能调优与架构设计> 一.逻辑模块组成 总的来说,MySQL 可以看成是二层架构,第一层我们通常叫做SQL Layer,在MyS ...
- java系统教程_Java 教程(开发环境配置+基础语法)
Java 开发环境配置 在本章节中我们将为大家介绍如何搭建Java开发环境. window系统安装java 下载JDK 首先我们需要下载java开发工具包JDK,下载地址:http://www.ora ...
- 查看mysql运行的配置文件_MySQL 查看当前使用的配置文件my.cnf的方法
my.cnf是MySQL启动时加载的配置文件,一般会放在mysql的安装目录中,用户也可以放在其他目录加载.安装mysql后,系统中会有多个my.cnf文件,有些是用于测试的.使用locate my. ...
- 找mysql软件的配置文件_mysql 查看当前使用的配置文件my.cnf的方法
my.cnf是mysql启动时加载的配置文件,一般会放在mysql的安装目录中,用户也可以放在其他目录加载. 安装mysql后,系统中会有多个my.cnf文件,有些是用于测试的. 使用locate m ...
- mysql list转表_mysql系统表【转】
MySQL5.7 默认的模式有:information_schema, 具有 61个表: mysqL, 具有31个表: performance_schema,具有87个表; sys, 具有1个表, 1 ...
- 织梦 mysql 配置文件_MySQL集群配置
一.介绍 ======== 这篇文档旨在介绍如何安装配置基于2台服务器的MySQL集群.并且实现任意一台服务器出现问题或宕机时MySQL依然能够继续运行. 注意! 虽然这是基于2台服务器的MySQL集 ...
- mysql申请 表空间_MySQL 系统表空间扩容方法
MySQL 系统表空间扩容方法 一, 系统表空间扩容方法 方法 1: 在 innodb_data_file_path 参数后面加上 autoextend 参数 innodb_data_file_pat ...
- mysql 多实例 独立配置文件_mysql 5.7 配置多实例 — 独立配置文件方式
使用独立配置文件来实现 mysql 的单机多实例 一下教程皆以已在 /usr/local 下安装了 mysql 为说明 我们将在原 3306 实例的基础上新建 3307 和 3308 两个实例 1.创 ...
- mysql系统的功能_MySQL系统架构及功能概述
1 MySql与传统数据的区别在于存储引擎架构.MySql是三层架构,最上层是连接层,包括安全认证.授权等功能:中间是服务层,大多数功能在这一层实现,包括存储过程.触发器.视图,这一层包含了其核心服务 ...
最新文章
- W1000变频器如何设定频率_变频器参数如何设定,参数故障处理办法
- java数组定义便利,java数组的定义(菜鸟教程)
- ASP.NET Core2调用Azure云上的PowerBI报表展示
- leetcode C++ 链表 24. 两两交换链表中的节点 给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。 你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换
- (转)iOS7界面设计规范(1) - UI基础 - 为iOS7而设计
- web前端自学入门视频教程分享
- 玩转GIT系列之【如何放弃本地/服务器端所做的修改】
- php 数组排序 按值,php – 按值排序数组
- “大数据标准”征稿通知
- 如何去掉桌面图标上的小箭头
- mysql encode 函数_MySQL常用函数
- 经典 SQL 数据库笔试题及答案整理
- KEIL MDK的安装(包含HAL库)
- 软件工程考研内容有c语言吗,2020中科大软件工程考研初试科目是什么?
- 俄罗斯技术宅教你如何花5万美元制作家用DNA测序仪
- Excel表格转换为Word表格,并且保留Excel表格中公式不发生变化
- 2021年HSP律所代理品牌侵权案件合集,赶紧查看避免踩坑
- 《二》STM32时钟使能及应用总结
- 海康威视 2021 春招面试题
- PHP获取文件夹下所有图片信息