转: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或者修改配置文件来修改的。