mysql数据库常用的系统变量

来源:互联网 发布:淘宝图片空间怎么导出 编辑:程序博客网 时间:2024/06/09 21:01

一、什么是系统变量
     系统变量实际上用于控制数据库的一些行为和方式的参数。比如我们启动数据库的时候设定多大的内存,使用什么样的隔离级别,日志文件的大小,存放位置等等一系列的东东。当然我们数据库系统启动后,有些系统变量(参数)也可以通过动态修改来及时调整数据库。这个系统变量在Oracle里边是通过pfile或者spfile来控制,称之为参数,是一个意思。
系统变量取值:都有默认值,可以在启动时及启动后修改。

设置范围:全局与回话级别,全局级别需要super权限,会话级别只影响自身会话。

设置方法:启动前可以通过配置文件以及启动选项来修改,启动后通过SET子句来设置。

生效周期:全局变量全局可见,但只影响在更改后连接的从该全局变量初始化相应会话变量的客户端。当前会话及已登录的会话不受影响。

对于有关涉及到size的设置值,可以使用后缀K、M或G分别表示千字节、兆字节或gigabytes,不区分大小写。


二、比较重要的系统变量详解

    (1)查看当前的mysq版本

mysql>  show variables like 'version%';+-------------------------+------------------------------+| Variable_name           | Value                        |+-------------------------+------------------------------+| version                 | 5.6.26                       || version_comment         | MySQL Community Server (GPL) || version_compile_machine | x86_64                       || version_compile_os      | Linux                        |+-------------------------+------------------------------+4 rows in set (0.00 sec)

    (2)Threads_connected 

     首先需要注意的,想得到这个变量的值不能show variables like 'Threads_connected';而是
show status like 'Threads_connected'(下面的变值也是这样的);

意思:变量的值是表示当前有多少个客户连接该mysql服务器
引申:连接数是否过多,网络时候存在问题!特别是在pconnect的情况下:)

mysql> show status like 'Threads_connected';+-------------------+-------+| Variable_name     | Value |+-------------------+-------+| Threads_connected | 5     |+-------------------+-------+1 row in set (0.00 sec)
    (3)Created_tmp_disk_tables

意思:在硬盘上建立的临时表数目
引申:如果这个值比较大的话,那么查询时需要建立临时表(CREATE TEMPORARY TABLE)的操作 就要消耗更多的时间

mysql> show status like 'Created_tmp_disk_tables';+-------------------------+-------+| Variable_name           | Value |+-------------------------+-------+| Created_tmp_disk_tables | 0     |+-------------------------+-------+1 row in set (0.00 sec)
    (4)Handler_read_first

意思:读表索引的第一行
引申:如果这个值变化比较大的话,可以认为表索引建立的有问题,全索引的扫描操作比较多

mysql> SELECT * FROM tbl_sensitive_words;+----------------+| sensitive_word |+----------------+| ddd            || eee            || ssss           |+----------------+3 rows in set (0.00 sec)mysql> show status like 'Handler_read_first';+--------------------+-------+| Variable_name      | Value |+--------------------+-------+| Handler_read_first | 1     |+--------------------+-------+1 row in set (0.00 sec)

    (5)Key_reads 

意思:读文件系统上面的索引的次数
引申:如果这个值太大的话,就需要考虑key cache设置是否正常了



   (6)Max_used_connections

意思:重起后到现在最大连接数
引申:服务器负载和可能需要调节的连接数

mysql> show status like 'Max_used_connections';+----------------------+-------+| Variable_name        | Value |+----------------------+-------+| Max_used_connections | 5     |+----------------------+-------+1 row in set (0.00 sec)

   (7)Open_tables

意思:当前打开的表的数目
引申:如果这个值很低,table cache很大,则减小table cache的设置是没有问题的,如果这个值很大,并接近了table cache的值,我们就需要加大talbe cache的设置


   (8)Uptime

意思:运行时间,单位秒
引申:This value is useful to analyze server uptime, as well as to generate reports on overall system performance. A consistent low value indicates that the server is being frequently restarted, thereby causing frequent interruptions to client service.


mysql> show status like 'Uptime';+---------------+-------+| Variable_name | Value |+---------------+-------+| Uptime        | 27420 |+---------------+-------+1 row in set (0.00 sec)



0 0
原创粉丝点击