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