您的位置:首页 > 数据库 > MySQL

Mysql源代码阅读笔记(一) 系统变量和系统状态变量

2012-03-13 14:20 330 查看
阅读Mysql源代码的过程中,我们要面对很多服务器系统变量和系统状态:

系统变量

(一)线程相关

thread_cache_size:

thread_concurrency:

thread_handling:

thread_stack:

(二)其他

init_connect:

A string to be executed by the server for each client that connects. The string consists of one or more SQL statements, separated by semicolon characters.

auto_commit:
是否自动提交,默认是开启的。当你执行完一个更新时,MySQL 将立刻将更新存储到磁盘上。

在命令行中输入set autocommit = 0;能暂时解决这个问题,但是,一旦重新启动mysql,mysql 又默认的 autocommit=1;

也可以在my.ini 中设置,或者mysqld启动时加变量autocommit。

[mysqld]

init_connect= 'SET AUTOCOMMIT=0 '

back_log

是要求MySQL能有的连接数量。

当主要MySQL线程在一个很短时间内得到非常多的连接请求,这就起作用,然后主线程花些时间(尽管很短)检查连接并且启动一个新线程。

back_log值指出在MySQL暂时停止回答新请求之前的短时间内多少个请求可以被存在堆栈中。

如果期望在一个短时间内有很多连接,你需要增加它。

也就是说,如果MySql的连接数据达到max_connections时,新来的请求将会被存在堆栈中,以等待某一连接释放资源,该堆栈的数量即back_log,如果等待连接的数量超过back_log,将不被授予连接资源。

另外,这值(back_log)限于您的操作系统对到来的TCP/IP连接的侦听队列的大小。

你的操作系统在这个队列大小上有它自己的限制(可以检查你的OS文档找出这个变量的最大值),试图设定back_log高于你的操作系统的限制将是无效的。

(三)binlog

系统状态变量

(一)线程

Threads_cached :代表当前此时此刻线程缓存中有多少空闲线程。

Threads_connected :代表当前已建立连接的数量,因为一个连接就需要一个线程,所以也可以看成当前被使用的线程数。

Threads_created :代表从最近一次服务启动,已创建线程的数量。

Threads_running :代表当前激活的(非睡眠状态)线程数。并不是代表正在使用的线程数,有时候连接已建立,但是连接处于sleep状态,这里相对应的线程也是sleep状态。

(二)查询缓冲

(三)COM_前缀的状态变量

记录命令执行的次数。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: