-- 查看mysql當前有多少連接
show global status like 'Thread%';
/*
Threads_cached:緩存中的線程連接數
Threads_connected:當前打開的連接數
Threads_created:為處理連接創建的線程數
Threads_running:非睡眠狀態的連接數,通常指并發連接數
*/
客戶端沒產生一個或者會話,在服務端就會創建一個線程來處理。反過來,如果要殺死會話,就是kill線程。
mysql會把長時間不活動(sleep)連接自動斷開。
-- 查看mysql的超時時間,默認 28800秒,即 8小時
show global VARIABLES like 'wait_timeout';-- 非交互式超時時間,如 JDBC程序
show global VARIABLES like 'interactive_timeout';-- 交互式超時時間,如 數據庫工具
-- 查看最大連接數,mysql5.7 默認是151個,可設置最大連接數為 100000
show VARIABLES like 'max_connections';
-- 查詢mysql緩存是否開啟,默認是關閉的
show VARIABLES like 'query_cache';
/*
為何默認緩存關閉?
1,要求sql語句一模一樣,中間多一個空格或者字母大小寫不同都被認為是不同的sql;
2,表里面任何一條數據變更都會導致這張表的所有緩存失效。
不適用于大量數據變更的場景,一般緩存交給第三方框架,如 MyBatis 或者 Redis這種來做
在5.8版本查詢緩存就被移除掉了
*/
-- 查看查詢開銷
show status like 'Last_query_cost';
-- 執行計劃工具 EXPLAIN
select * from db;
EXPLAIN select * from db where Db = 'sys';
-- 存儲引擎
show VARIABLES like 'datadir';