【转】mysql-status和variables区别

转:http://www.2cto.com/database/201304/204320.html
 
mysql之status和variables区别
 
首先可以通过下属两个命令来查看mysql的相应的系统参数
show status like ‘%abc%‘;
show variables like ‘%abc%‘;
 
但是很多人不明白二者到底有什么区别
status是状态是系统的状态不可更改,是系统现在的运行状态参数,说明如下:
Java代码  
mysql> show status like ‘innodb_rows_%‘;  
+----------------------+---------+  
| Variable_name        | Value   |  
+----------------------+---------+  
| Innodb_rows_deleted  | 0       |  
| Innodb_rows_inserted | 1169098 |  
| Innodb_rows_read     | 7955216 |  
| Innodb_rows_updated  | 0       |  
+----------------------+---------+  
4 rows in set (0.00 sec)  
 一条条说明如下:
| Innodb_rows_deleted|0                  |  为innodb表删除的行数,此处为0标示没有删除过
| Innodb_rows_inserted | 1169098 | 为innodb表insert的行数,此处标示现在insert了1169098 行
| Innodb_rows_read     | 7955216    | 为innodb表执行select获取的行数
| Innodb_rows_updated  | 0              | 为innodb表执行update涉及到的行数
上述4个是innodb表的运行状态参数,不能人为修改,只能系统去update,用途很显然是为了告诉dba现在系统的状态,好让dba去做优化,上述4个记录告诉dba此时读大于写(我在执行insert into a select * from a,故出上述数据),可以考虑建立适当索引,如果读是0,写很大,那么可以考虑删除index等等。
Java代码  
mysql> show variables like ‘query%‘;  
+------------------------------+----------+  
| Variable_name                | Value    |  
+------------------------------+----------+  
| query_alloc_block_size       | 8192     |  
| query_cache_limit            | 1048576  |  
| query_cache_min_res_unit     | 4096     |  
| query_cache_size             | 16777216 |  
| query_cache_type             | ON       |  
| query_cache_wlock_invalidate | OFF      |  
| query_prealloc_size          | 8192     |  
+------------------------------+----------+  
7 rows in set (0.00 sec)  
 上述标示查看查询缓存的相关信息,此时可以根据status做适当的优化此处注意是系统管用cache的相关配置信息,是可以通过set或者修改配置文件来修改的。

【转】mysql-status和variables区别

上一篇:程序员面试笔试宝典学习记录(三)(数据库相关知识)


下一篇:mysqldump 备份时排除某些表的脚本