MySQL5学习笔记(三)

系统变量

      mysqld服务器维护两种变量。全局变量(GLOBAL)影响服务器整体操作。会话变量(SESSION)影响具体客户端连接的操作。

      当服务器启动时,它将所有全局变量初始化为默认值。这些默认值可以在选项文件中或在命令行中指定的选项进行更改。服务器启动后,通过连接服务器并执行SET GLOBAL var_name语句,可以动态更改这些全局变量。要想更改全局变量,必须具有SUPER权限。

      服务器还为每个连接的客户端维护一系列会话变量。在连接时使用相应全局变量的当前值对客户端的会话变量进行初始化。会话变量只能更改自己的会话变量,而不能更改其它客户端的会话变量。
      对于全局变量的更改可以被访问该全局变量的任何客户端看见。然而,它只影响更改后连接的客户的从该全局变量初始化的相应会话变量。不影响目前已经连接的客户端的会话变量(即使客户端执行SET GLOBAL语句也不影响)。

    要想设置一个GLOBAL变量的值,使用下面的语法:
mysql> SET GLOBAL sort_buffer_size=value;
mysql> SET @@global.sort_buffer_size=value;

    要想设置一个SESSION变量的值,使用下面的语法:

mysql> SET SESSION sort_buffer_size=value;
mysql> SET @@session.sort_buffer_size=value;
mysql> SET sort_buffer_size=value;

    如果设置变量时不指定GLOBAL或者SESSION,默认使用SESSION。

    要想检索一个GLOBAL变量的值,使用下面的语法:

mysql> SHOW GLOBAL VARIABLES like 'sort_buffer_size';

    要想检索一个SESSION变量的值,使用下面的语法:

mysql> SHOW SESSION VARIABLES like 'sort_buffer_size';

    你可以通过SHOW VARIABLES语句查看系统变量及其值。

mysql> SHOW VARIABLES;

    下面是一些系统变量的解释,若没有另行规定,缓冲区大小、长度和堆栈大小的单位均为字节。

 ·· auto_increment_increment

     auto_increment_increment和auto_increment_offset用于主服务器-主服务器(master-to-master)复制,并可以用来控制AUTO_INCREMENT列的操作。

   ··auto_increment_offset

确定AUTO_INCREMENT列值的起点。假定auto_increment_increment为10,auto_increment_offset为5,则插入后自增长索引为5,15,25。。。

  ··back_log

back_log值说明MySQL临时停止响应新请求前在短时间内可以堆起多少请求。

  ··basedir
MySQL安装基准目录。可以用--basedir选项设置该变量。

  ··bdb_cache_size
表缓存索引和行分配的缓冲区的大小。如果你不使用BDB表,你应用--skip-bdb启动mysqld以便不浪费该缓存。

  ··binlog_cache_size
在事务过程中容纳二进制日志SQL语句的缓存大小。二进制日志缓存是服务器支持事务存储引擎并且服务器启用了二进制日志(--log-bin选项)的前提下为每个客户端分配的内存。如果你经常使用大的,多语句事务,你可以增加该值以获得更有的性能。

原文地址:https://www.cnblogs.com/lnlvinso/p/3744086.html