日期:2014-05-16  浏览次数:20745 次

MySQL里的变量分系统变量和用户变量

mysql里的变量分系统变量和用户变量.

  系统变量

  其中系统变量,又分全局(global)和会话(session)两种.

  全局系统变量,主要影响整个mysql实例的全局设置.

  大部分变量都是作为mysql的服务器调节参数存在.新增或修改这类变量, 会影响mysql的运行方式.

  比如: auto_increment_increment 代表序列的自增值, 默认为1

  另外, mysql中,只有一部分变量是支持运行时动态修改的.

  变量修改的作用范围,是那些重新创建连接到mysql服务器的客户端连接.

  如果你的连接是由应用通过连接池来维护的,并且,是长连接的,那么,此时在服务器运行过程中,动态地修改全局变量对你是没有什么影响的.

  通过全局变量, 我们可以想到一些应用场景:

  1, 在存储过程, 函数, sql里,使用一些业务相关的全局变量.

  经常编写业务相关的存储过程,函数的朋友, 可能会需要针对不同业务,设置能共享访问的全局变量.

  比如, 公司的总人数,很多存储过程都需要调用这个值,但是因为这个值,不是经常会改变的,不需要每次都count.

  所以大多数人会考虑把它cache一把,那么mysql提供的全局变量,就是一个好的存储场所.

  2, 数据库配置中心

  首先,这不一定是一种好的解决方式, 特别是大型地分布式系统.但是想到了,就跟大家分享一下.

  主要就是利用了三层,四层架构的系统, 必不可少的数据库层来实现的.

  大家知道, 应用的配置, 大多数是用配置文件或配置服务器来实现, 前者需要跟着项目打包, 部署.