mysql之status和variables區別
首先可以通過下屬兩個命令來查看mysql的相應的系統參數
show status like '%abc%';
show variables like '%abc%';
但是很多人不明白二者到底有什麼區別
status是狀態是系統的狀態不可更改,是系統現在的運行狀態參數,說明如下:
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等等。
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或者修改配置文件來修改的。