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系统变量配置基础相关推荐

  1. mysql的相关技术说明_MySQL 系统架构 说明

    说明:本文转自 简朝阳(MySQL ACE)的 <MySQL性能调优与架构设计> 一.逻辑模块组成 总的来说,MySQL 可以看成是二层架构,第一层我们通常叫做SQL Layer,在MyS ...

  2. java系统教程_Java 教程(开发环境配置+基础语法)

    Java 开发环境配置 在本章节中我们将为大家介绍如何搭建Java开发环境. window系统安装java 下载JDK 首先我们需要下载java开发工具包JDK,下载地址:http://www.ora ...

  3. 查看mysql运行的配置文件_MySQL 查看当前使用的配置文件my.cnf的方法

    my.cnf是MySQL启动时加载的配置文件,一般会放在mysql的安装目录中,用户也可以放在其他目录加载.安装mysql后,系统中会有多个my.cnf文件,有些是用于测试的.使用locate my. ...

  4. 找mysql软件的配置文件_mysql 查看当前使用的配置文件my.cnf的方法

    my.cnf是mysql启动时加载的配置文件,一般会放在mysql的安装目录中,用户也可以放在其他目录加载. 安装mysql后,系统中会有多个my.cnf文件,有些是用于测试的. 使用locate m ...

  5. mysql list转表_mysql系统表【转】

    MySQL5.7 默认的模式有:information_schema, 具有 61个表: mysqL, 具有31个表: performance_schema,具有87个表; sys, 具有1个表, 1 ...

  6. 织梦 mysql 配置文件_MySQL集群配置

    一.介绍 ======== 这篇文档旨在介绍如何安装配置基于2台服务器的MySQL集群.并且实现任意一台服务器出现问题或宕机时MySQL依然能够继续运行. 注意! 虽然这是基于2台服务器的MySQL集 ...

  7. mysql申请 表空间_MySQL 系统表空间扩容方法

    MySQL 系统表空间扩容方法 一, 系统表空间扩容方法 方法 1: 在 innodb_data_file_path 参数后面加上 autoextend 参数 innodb_data_file_pat ...

  8. mysql 多实例 独立配置文件_mysql 5.7 配置多实例 — 独立配置文件方式

    使用独立配置文件来实现 mysql 的单机多实例 一下教程皆以已在 /usr/local 下安装了 mysql 为说明 我们将在原 3306 实例的基础上新建 3307 和 3308 两个实例 1.创 ...

  9. mysql系统的功能_MySQL系统架构及功能概述

    1 MySql与传统数据的区别在于存储引擎架构.MySql是三层架构,最上层是连接层,包括安全认证.授权等功能:中间是服务层,大多数功能在这一层实现,包括存储过程.触发器.视图,这一层包含了其核心服务 ...

最新文章

  1. W1000变频器如何设定频率_变频器参数如何设定,参数故障处理办法
  2. java数组定义便利,java数组的定义(菜鸟教程)
  3. ASP.NET Core2调用Azure云上的PowerBI报表展示
  4. leetcode C++ 链表 24. 两两交换链表中的节点 给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。 你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换
  5. (转)iOS7界面设计规范(1) - UI基础 - 为iOS7而设计
  6. web前端自学入门视频教程分享
  7. 玩转GIT系列之【如何放弃本地/服务器端所做的修改】
  8. php 数组排序 按值,php – 按值排序数组
  9. “大数据标准”征稿通知
  10. 如何去掉桌面图标上的小箭头
  11. mysql encode 函数_MySQL常用函数
  12. 经典 SQL 数据库笔试题及答案整理
  13. KEIL MDK的安装(包含HAL库)
  14. 软件工程考研内容有c语言吗,2020中科大软件工程考研初试科目是什么?
  15. 俄罗斯技术宅教你如何花5万美元制作家用DNA测序仪
  16. Excel表格转换为Word表格,并且保留Excel表格中公式不发生变化
  17. 2021年HSP律所代理品牌侵权案件合集,赶紧查看避免踩坑
  18. 《二》STM32时钟使能及应用总结
  19. 海康威视 2021 春招面试题
  20. PHP获取文件夹下所有图片信息

热门文章

  1. 8.仿阿里云虚拟云服务器的FTP(包括FTP文件夹大小限制)
  2. scrot截图ubuntu
  3. Java SE 6之GUI:让界面更加绚丽(下)
  4. Oracle中的AWR,全称为Automatic Workload Repository
  5. python实现关键词提取
  6. LeetCode:螺旋矩阵【54】
  7. POJ 2425 A Chess Game(有向图SG函数)题解
  8. ssh 执行多条命令包含awk的用法
  9. EasyPlayer Android RTSP播放器延迟再优化策略
  10. java 多线程 关键字_java多线程基础(synchronize关键字)