事務
-- 查看當前所有事務 select * from information_schema.innodb_trx; -- 查看正在鎖的事務 select * from information_schema.innodb_locks; -- 查看等待鎖的事務 select * from information_schema.innodb_lock_waits;
鎖
-- 查看當前有那些表是打開的 show open tables; -- In_use:有多少線程正在使用某張表 show OPEN TABLES where In_use > 0; -- 解鎖 -- 顯示連接列表(查詢 ID) show full processlist; -- 結束指定(ID)連接 kill id; -- 解鎖 UNLOCK TABLES; show status like '%lock%'; -- 指定表加鎖 LOCK TABLES tbl_name READ; LOCK TABLES tbl_name WRITE; -- 所有表加鎖 FLUSH TABLES WITH READ LOCK;
線程
-- 查看當前連接 -- Threads_connected:打開的連接數 -- Threads_running:激活的連接數(並發數,一般遠低於connected) -- Threads_created:表示創建過的線程數 show status like 'Threads%'; -- 如果 Threads_created 值過大的話,表明 MySQL 服務器一直在創建線程,可以適當增加 thread_cache_size 值 show variables like 'thread_cache_size';
連接
-- 查詢最大連接數 show variables like '%max_connections%'; -- 設置最大連接數 set global max_connections=1000; -- 在/etc/my.cnf里面設置數據庫的最大連接數 -- [mysqld] -- max_connections = 1000
其它查詢
-- 顯示連接狀態,可以把 connect 換成其它參數 show STATUS LIKE '%connect%'; -- Aborted_clients:由於客戶沒有正確關閉連接已經死掉,已經放棄的連接數量。 -- Aborted_connects:嘗試已經失敗的 MySQL 服務器的連接的次數。 -- Connections:試圖連接 MySQL 服務器的次數。 -- Created_tmp_tables:當執行語句時,已經被創造了的隱含臨時表的數量。 -- Delayed_insert_threads:正在使用的延遲插入處理器線程的數量。 -- Delayed_writes:用 INSERT:DELAYED 寫入的行數。 -- Delayed_errors:用 INSERT:DELAYED 寫入的發生某些錯誤(可能重復鍵值)的行數。 -- Flush_commands:執行 FLUSH 命令的次數。 -- Handler_delete:請求從一張表中刪除行的次數。 -- Handler_read_first:請求讀入表中第一行的次數。 -- Handler_read_key:請求數字基於鍵讀行。 -- Handler_read_next:請求讀入基於一個鍵的一行的次數。 -- Handler_read_rnd:請求讀入基於一個固定位置的一行的次數。 -- Handler_update:請求更新表中一行的次數。 -- Handler_write:請求向表中插入一行的次數。 -- Key_blocks_used:用於關鍵字緩存的塊的數量。 -- Key_read_requests:請求從緩存讀入一個鍵值的次數。 -- Key_reads:從磁盤物理讀入一個鍵值的次數。 -- Key_write_requests:請求將一個關鍵字塊寫入緩存次數。 -- Key_writes:將一個鍵值塊物理寫入磁盤的次數。 -- Max_used_connections:同時使用的連接的最大數目。 -- Not_flushed_key_blocks:在鍵緩存中已經改變但是還沒被清空到磁盤上的鍵塊。 -- Not_flushed_delayed_rows:在 INSERT:DELAY 隊列中等待寫入的行的數量。 -- Open_tables:打開表的數量。 -- Open_files:打開文件的數量。 -- Open_streams:打開流的數量(主要用於日志記載) -- Opened_tables:已經打開的表的數量。 -- Questions:發往服務器的查詢的數量。 -- Slow_queries:要花超過 long_query_time 時間的查詢數量。 -- Threads_connected:當前打開的連接的數量。 -- Threads_running:不在睡眠的線程數量。 -- Uptime:服務器工作了多長時間,單位秒。
https://dev.mysql.com/doc/refman/8.0/en/table-locking.html