MySQL鎖定狀態查看相關命令

1. SHOW PROCESSLIST;

顯示哪些線程正在運行(只列出前100條),SHOW FULL PROCESSLIST; 列出所有線程信息。

如果您有SUPER權限,您可以看到所有線程。否則,您只能看到您自己的線程(也就是,與您正在使用的MySQL賬戶相關的線程)。

如果有線程在update或者insert 某個表,此時進程的status爲updating 或者 sending data。

如果您得到"too many connections"錯誤信息,並且想要了解正在發生的情況,本語句是非常有用的。MySQL保留一個額外的鏈接,讓擁有SUPER權限的賬戶使用,以確保管理員能夠隨時連接和檢查系統(假設您沒有把此權限給予所有的用戶)。

Id

User

Host

db

Command

Time

State

Info

2411

root

125.121.239.68:54744

tb_lock_db

Query

0

starting

SHOW PROCESSLIST

2413

root

125.121.239.68:54749

tb_lock_db

Sleep

961

   

2447

root

125.121.239.68:55199

test

Sleep

2443

   

2448

root

125.121.239.68:55376

tb_lock_db

Sleep

911

   

2449

root

localhost

 

Sleep

73

   

參數:

id #id標識,要kill一個語句的時候很有用

user #當前連接用戶

host #顯示這個連接從哪個ip的哪個端口上發出

db #數據庫名

command #連接狀態,一般是休眠(sleep) ,查詢(query),連接(connect)

time #連接持續時間,單位是秒

state #顯示當前sql語句的狀態

info #顯示這個sql語

 

其中state的狀態十分關鍵,下表列出state主要狀態和描述:

狀態 

描述

Checking table

正在檢查數據表(這是自動的)。

Closing tables

正在將表中修改的數據刷新到磁盤中,同時正在關閉已經用完的表。這是一個很快的操作,如果不是這樣的話,就應該確認磁盤空間是否已經滿了或者磁盤是否正處於重負中。

Connect Out

複製從服務器正在連接主服務器。

Copying to tmp table on disk

由於臨時結果集大於tmp_table_size,正在將臨時表從內存存儲轉爲磁盤存儲以此節省內存。

Creating tmp table

正在創建臨時表以存放部分查詢結果。

deleting from main table

服務器正在執行多表刪除中的第一部分,剛刪除第一個表。

deleting from reference tables

服務器正在執行多表刪除中的第二部分,正在刪除其他表的記錄。

Flushing tables

正在執行FLUSH TABLES,等待其他線程關閉數據表。

Killed

發送了一個kill請求給某線程,那麼這個線程將會檢查kill標誌位,同時會放棄下一個kill請求。MySQL會在每次的主循環中檢查kill標誌位,不過有些情況下該線程可能會過一小段才能死掉。如果該線程程被其他線程鎖住了,那麼kill請求會在鎖釋放時馬上生效。

Locked

被其他查詢鎖住了。

Sending data

正在處理SELECT查詢的記錄,同時正在把結果發送給客戶端。

Sorting for group

正在爲GROUP BY做排序。

Sorting for order

正在爲ORDER BY做排序。

Opening tables

這個過程應該會很快,除非受到其他因素的干擾。例如,在執ALTER TABLE或LOCK TABLE語句執行完以前,數據表無法被其他線程打開。正嘗試打開一個表。

Removing duplicates

正在執行一個SELECT DISTINCT方式的查詢,但是MySQL無法在前一個階段優化掉那些重複的記錄。因此,MySQL需要再次去掉重複的記錄,然後再把結果發送給客戶端。

Reopen table

獲得了對一個表的鎖,但是必須在表結構修改之後才能獲得這個鎖。已經釋放鎖,關閉數據表,正嘗試重新打開數據表。

Repair by sorting

修復指令正在排序以創建索引。

Repair with keycache

修復指令正在利用索引緩存一個一個地創建新索引。它會比Repair by sorting慢些。

Searching rows for update

正在講符合條件的記錄找出來以備更新。它必須在UPDATE要修改相關的記錄之前就完成了。

Sleeping

正在等待客戶端發送新請求.

System lock

正在等待取得一個外部的系統鎖。如果當前沒有運行多個mysqld服務器同時請求同一個表,那麼可以通過增加--skip-external-locking參數來禁止外部系統鎖。

Upgrading lock

INSERT DELAYED正在嘗試取得一個鎖表以插入新記錄。

Updating

正在搜索匹配的記錄,並且修改它們。

User Lock

正在等待GET_LOCK()。

Waiting for tables

該線程得到通知,數據表結構已經被修改了,需要重新打開數據表以取得新的結構。然後,爲了能的重新打開數據表,必須等到所有其他線程關閉這個表。以下幾種情況下會產生這個通知:FLUSH TABLES tbl_name, ALTER TABLE, RENAME TABLE, REPAIR TABLE, ANALYZE TABLE,或OPTIMIZE TABLE。

waiting for handler insert

INSERT DELAYED已經處理完了所有待處理的插入操作,正在等待新的請求。

 

2.SHOW OPEN TABLES ;

Database

Table

In_use

Name_locked

tb_lock_db

account

0

0

這條命令能夠查看當前有那些表是打開的。In_use列表示有多少線程正在使用某張表,Name_locked表示表名是否被鎖,這一般發生在Drop或Rename命令操作這張表時。所以這條命令不能幫助解答我們常見的問題:當前某張表是否有死鎖,誰擁有表上的這個鎖等。這個列表可能特別長,屏幕可能裝不下。通過指定數據庫來減少返回條數: OPEN TABLES FROM database;

 

3.SHOW STATUS LIKE '%**%';

查看服務器狀態。

mysql> show status like '%lock%';

+------------------------------------------+---------+

| Variable_name | Value |

+------------------------------------------+---------+

| Com_lock_tables | 0 |

| Com_unlock_tables | 0 |

| Innodb_row_lock_current_waits | 0 |

| Innodb_row_lock_time | 3946985 |

| Innodb_row_lock_time_avg | 1558 |

| Innodb_row_lock_time_max | 121788 |

| Innodb_row_lock_waits | 2532 |

| Key_blocks_not_flushed | 0 |

| Key_blocks_unused | 26716 |

| Key_blocks_used | 2660 |

| Performance_schema_locker_lost | 0 |

| Performance_schema_rwlock_classes_lost | 0 |

| Performance_schema_rwlock_instances_lost | 0 |

| Qcache_free_blocks | 27343 |

| Qcache_total_blocks | 61962 |

| Table_locks_immediate | 8504599 |

| Table_locks_waited | 2 |

+------------------------------------------+---------+

 

狀態名

作用域

詳細解釋

Aborted_clients

Global

由於客戶端沒有正確關閉連接導致客戶端終止而中斷的連接數

Aborted_connects

Global

試圖連接到MySQL服務器而失敗的連接數

Binlog_cache_disk_use

Global

使用臨時二進制日誌緩存但超過binlog_cache_size值並使用臨時文件來保存事務中的語句的事務數量

Binlog_cache_use

Global

使用臨時二進制日誌緩存的事務數量

Bytes_received

Both

從所有客戶端接收到的字節數。

Bytes_sent

Both

發送給所有客戶端的字節數。

com*

 

各種數據庫操作的數量

Compression

Session

客戶端與服務器之間只否啓用壓縮協議

Connections

Global

試圖連接到(不管是否成功)MySQL服務器的連接數

Created_tmp_disk_tables

Both

服務器執行語句時在硬盤上自動創建的臨時表的數量

Created_tmp_files

Global

mysqld已經創建的臨時文件的數量

Created_tmp_tables

Both

服務器執行語句時自動創建的內存中的臨時表的數量。如果Created_tmp_disk_tables較大,你可能要增加tmp_table_size值使臨時 表基於內存而不基於硬盤

Delayed_errors

Global

用INSERT DELAYED寫的出現錯誤的行數(可能爲duplicate key)。

Delayed_insert_threads

Global

使用的INSERT DELAYED處理器線程數。

Delayed_writes

Global

寫入的INSERT DELAYED行數

Flush_commands

Global

執行的FLUSH語句數。

Handler_commit

Both

內部提交語句數

Handler_delete

Both

行從表中刪除的次數。

Handler_discover

Both

MySQL服務器可以問NDB CLUSTER存儲引擎是否知道某一名字的表。這被稱作發現。Handler_discover說明通過該方法發現的次數。

Handler_prepare

Both

A counter for the prepare phase of two-phase commit operations.

Handler_read_first

Both

索引中第一條被讀的次數。如果較高,它建議服務器正執行大量全索引掃描;例如,SELECT col1 FROM foo,假定col1有索引。

Handler_read_key

Both

根據鍵讀一行的請求數。如果較高,說明查詢和表的索引正確。

Handler_read_next

Both

按照鍵順序讀下一行的請求數。如果你用範圍約束或如果執行索引掃描來查詢索引列,該值增加。

Handler_read_prev

Both

按照鍵順序讀前一行的請求數。該讀方法主要用於優化ORDER BY ... DESC。

Handler_read_rnd

Both

根據固定位置讀一行的請求數。如果你正執行大量查詢並需要對結果進行排序該值較高。你可能使用了大量需要MySQL掃描整個表的查詢或你的連接沒有正確使用鍵。

Handler_read_rnd_next

Both

在數據文件中讀下一行的請求數。如果你正進行大量的表掃描,該值較高。通常說明你的表索引不正確或寫入的查詢沒有利用索引。

Handler_rollback

Both

內部ROLLBACK語句的數量。

Handler_savepoint

Both

在一個存儲引擎放置一個保存點的請求數量。

Handler_savepoint_rollback

Both

在一個存儲引擎的要求回滾到一個保存點數目。

Handler_update

Both

在表內更新一行的請求數。

Handler_write

Both

在表內插入一行的請求數。

Innodb_buffer_pool_pages_data

Global

包含數據的頁數(髒或乾淨)。

Innodb_buffer_pool_pages_dirty

Global

當前的髒頁數。

Innodb_buffer_pool_pages_flushed

Global

要求清空的緩衝池頁數

Innodb_buffer_pool_pages_free

Global

空頁數。

Innodb_buffer_pool_pages_latched

Global

在InnoDB緩衝池中鎖定的頁數。這是當前正讀或寫或由於其它原因不能清空或刪除的頁數。

Innodb_buffer_pool_pages_misc

Global

忙的頁數,因爲它們已經被分配優先用作管理,例如行鎖定或適用的哈希索引。該值還可以計算爲Innodb_buffer_pool_pages_total - Innodb_buffer_pool_pages_free - Innodb_buffer_pool_pages_data。

Innodb_buffer_pool_pages_total

Global

緩衝池總大小(頁數)。

Innodb_buffer_pool_read_ahead_rnd

Global

InnoDB初始化的“隨機”read-aheads數。當查詢以隨機順序掃描表的一大部分時發生。

Innodb_buffer_pool_read_ahead_seq

Global

InnoDB初始化的順序read-aheads數。當InnoDB執行順序全表掃描時發生。

Innodb_buffer_pool_read_requests

Global

InnoDB已經完成的邏輯讀請求數。

Innodb_buffer_pool_reads

Global

不能滿足InnoDB必須單頁讀取的緩衝池中的邏輯讀數量。

Innodb_buffer_pool_wait_free

Global

一般情況,通過後臺向InnoDB緩衝池寫。但是,如果需要讀或創建頁,並且沒有乾淨的頁可用,則它還需要先等待頁面清空。該計數器對等待實例進行記數。如果已經適當設置緩衝池大小,該值應小。

Innodb_buffer_pool_write_requests

Global

向InnoDB緩衝池的寫數量。

Innodb_data_fsyncs

Global

fsync()操作數。

Innodb_data_pending_fsyncs

Global

當前掛起的fsync()操作數。

Innodb_data_pending_reads

Global

當前掛起的讀數。

Innodb_data_pending_writes

Global

當前掛起的寫數。

Innodb_data_read

Global

至此已經讀取的數據數量(字節)。

Innodb_data_reads

Global

數據讀總數量。

Innodb_data_writes

Global

數據寫總數量。

Innodb_data_written

Global

至此已經寫入的數據量(字節)。

Innodb_dblwr_pages_written

Global

已經執行的雙寫操作數量

Innodb_dblwr_writes

Global

雙寫操作已經寫好的頁數

Innodb_log_waits

Global

我們必須等待的時間,因爲日誌緩衝區太小,我們在繼續前必須先等待對它清空

Innodb_log_write_requests

Global

日誌寫請求數。

Innodb_log_writes

Global

向日志文件的物理寫數量。

Innodb_os_log_fsyncs

Global

向日志文件完成的fsync()寫數量。

Innodb_os_log_pending_fsyncs

Global

掛起的日誌文件fsync()操作數量。

Innodb_os_log_pending_writes

Global

掛起的日誌文件寫操作

Innodb_os_log_written

Global

寫入日誌文件的字節數。

Innodb_page_size

Global

編譯的InnoDB頁大小(默認16KB)。許多值用頁來記數;頁的大小很容易轉換爲字節。

Innodb_pages_created

Global

創建的頁數。

Innodb_pages_read

Global

讀取的頁數。

Innodb_pages_written

Global

寫入的頁數。

Innodb_row_lock_current_waits

Global

當前等待的待鎖定的行數。

Innodb_row_lock_time

Global

行鎖定花費的總時間,單位毫秒。

Innodb_row_lock_time_avg

Global

行鎖定的平均時間,單位毫秒。

Innodb_row_lock_time_max

Global

行鎖定的最長時間,單位毫秒。

Innodb_row_lock_waits

Global

一行鎖定必須等待的時間數。

Innodb_rows_deleted

Global

從InnoDB表刪除的行數。

Innodb_rows_inserted

Global

插入到InnoDB表的行數。

Innodb_rows_read

Global

從InnoDB表讀取的行數。

Innodb_rows_updated

Global

InnoDB表內更新的行數。

Key_blocks_not_flushed

Global

鍵緩存內已經更改但還沒有清空到硬盤上的鍵的數據塊數量。

Key_blocks_unused

Global

鍵緩存內未使用的塊數量。你可以使用該值來確定使用了多少鍵緩存

Key_blocks_used

Global

鍵緩存內使用的塊數量。該值爲高水平線標記,說明已經同時最多使用了多少塊。

Key_read_requests

Global

從緩存讀鍵的數據塊的請求數。

Key_reads

Global

從硬盤讀取鍵的數據塊的次數。如果Key_reads較大,則Key_buffer_size值可能太小。可以用Key_reads/Key_read_requests計算緩存損失率。

Key_write_requests

Global

將鍵的數據塊寫入緩存的請求數。

Key_writes

Global

向硬盤寫入將鍵的數據塊的物理寫操作的次數。

Last_query_cost

Session

用查詢優化器計算的最後編譯的查詢的總成本。用於對比同一查詢的不同查詢方案的成本。默認值0表示還沒有編譯查詢。 默認值是0。Last_query_cost具有會話範圍。

Max_used_connections

Global

服務器啓動後已經同時使用的連接的最大數量。

ndb*

 

ndb集羣相關

Not_flushed_delayed_rows

Global

等待寫入INSERT DELAY隊列的行數。

Open_files

Global

打開的文件的數目。

Open_streams

Global

打開的流的數量(主要用於記錄)。

Open_table_definitions

Global

緩存的.frm文件數量

Open_tables

Both

當前打開的表的數量。

Opened_files

Global

文件打開的數量。不包括諸如套接字或管道其他類型的文件。 也不包括存儲引擎用來做自己的內部功能的文件。

Opened_table_definitions

Both

已經緩存的.frm文件數量

Opened_tables

Both

已經打開的表的數量。如果Opened_tables較大,table_cache 值可能太小。

Prepared_stmt_count

Global

當前的預處理語句的數量。 (最大數爲系統變量: max_prepared_stmt_count) 

Qcache_free_blocks

Global

查詢緩存內自由內存塊的數量。

Qcache_free_memory

Global

用於查詢緩存的自由內存的數量。

Qcache_hits

Global

查詢緩存被訪問的次數。

Qcache_inserts

Global

加入到緩存的查詢數量。

Qcache_lowmem_prunes

Global

由於內存較少從緩存刪除的查詢數量。

Qcache_not_cached

Global

非緩存查詢數(不可緩存,或由於query_cache_type設定值未緩存)。

Qcache_queries_in_cache

Global

登記到緩存內的查詢的數量。

Qcache_total_blocks

Global

查詢緩存內的總塊數。

Queries

Both

服務器執行的請求個數,包含存儲過程中的請求。

Questions

Both

已經發送給服務器的查詢的個數。

Rpl_status

Global

失敗安全複製狀態(還未使用)。

Select_full_join

Both

沒有使用索引的聯接的數量。如果該值不爲0,你應仔細檢查表的索引

Select_full_range_join

Both

在引用的表中使用範圍搜索的聯接的數量。

Select_range

Both

在第一個表中使用範圍的聯接的數量。一般情況不是關鍵問題,即使該值相當大。

Select_range_check

Both

在每一行數據後對鍵值進行檢查的不帶鍵值的聯接的數量。如果不爲0,你應仔細檢查表的索引。

Select_scan

Both

對第一個表進行完全掃描的聯接的數量。

Slave_heartbeat_period

Global

複製的心跳間隔

Slave_open_temp_tables

Global

從服務器打開的臨時表數量

Slave_received_heartbeats

Global

從服務器心跳數

Slave_retried_transactions

Global

本次啓動以來從服務器複製線程重試次數

Slave_running

Global

如果該服務器是連接到主服務器的從服務器,則該值爲ON。

Slow_launch_threads

Both

創建時間超過slow_launch_time秒的線程數。

Slow_queries

Both

查詢時間超過long_query_time秒的查詢的個數。

Sort_merge_passes

Both

排序算法已經執行的合併的數量。如果這個變量值較大,應考慮增加sort_buffer_size系統變量的值。

Sort_range

Both

在範圍內執行的排序的數量。

Sort_rows

Both

已經排序的行數。

Sort_scan

Both

通過掃描表完成的排序的數量。

ssl*

 

ssl連接相關

Table_locks_immediate

Global

立即獲得的表的鎖的次數。

Table_locks_waited

Global

不能立即獲得的表的鎖的次數。如果該值較高,並且有性能問題,你應首先優化查詢,然後拆分表或使用複製。

Threads_cached

Global

線程緩存內的線程的數量。

Threads_connected

Global

當前打開的連接的數量。

Threads_created

Global

創建用來處理連接的線程數。如果Threads_created較大,你可能要增加thread_cache_size值。緩存訪問率的計算方法Threads_created/Connections。

Threads_running

Global

激活的(非睡眠狀態)線程數。

Uptime

Global

服務器已經運行的時間(以秒爲單位)。

Uptime_since_flush_status

Global

最近一次使用FLUSH STATUS 的時間(以秒爲單位)。

 

4.show engine innodb status\G;

查看innodb引擎的運行時信息

 

=====================================

2018-12-28 07:15:53 0x7f8448aa4700 INNODB MONITOR OUTPUT

=====================================

Per second averages calculated from the last 19 seconds

-----------------

BACKGROUND THREAD

-----------------

srv_master_thread loops: 232 srv_active, 0 srv_shutdown, 689020 srv_idle

srv_master_thread log flush and writes: 689236

----------

SEMAPHORES

----------

OS WAIT ARRAY INFO: reservation count 180

OS WAIT ARRAY INFO: signal count 167

RW-shared spins 0, rounds 295, OS waits 152

RW-excl spins 0, rounds 30, OS waits 1

RW-sx spins 0, rounds 0, OS waits 0

Spin rounds per wait: 295.00 RW-shared, 30.00 RW-excl, 0.00 RW-sx

------------------------

LATEST DETECTED DEADLOCK

------------------------

2018-12-27 08:39:04 0x7f8448b26700

*** (1) TRANSACTION:

TRANSACTION 32821, ACTIVE 20 sec starting index read

mysql tables in use 1, locked 1

LOCK WAIT 3 lock struct(s), heap size 1136, 2 row lock(s)

MySQL thread id 2411, OS thread handle 140206130996992, query id 5010 125.121.239.68 root statistics

SELECT * FROM account WHERE id = 2 FOR UPDATE

*** (1) WAITING FOR THIS LOCK TO BE GRANTED:

RECORD LOCKS space id 303 page no 3 n bits 72 index PRIMARY of table `tb_lock_db`.`account` trx id 32821 lock_mode X locks rec but not gap waiting

Record lock, heap no 3 PHYSICAL RECORD: n_fields 4; compact format; info bits 0

0: len 8; hex 8000000000000002; asc ;;

1: len 6; hex 000000008025; asc %;;

2: len 7; hex e10000019d0110; asc ;;

3: len 5; hex 8000000000; asc ;;

 

*** (2) TRANSACTION:

TRANSACTION 32822, ACTIVE 12 sec starting index read

mysql tables in use 1, locked 1

3 lock struct(s), heap size 1136, 2 row lock(s)

MySQL thread id 2412, OS thread handle 140206132061952, query id 5014 125.121.239.68 root statistics

SELECT * FROM account WHERE id = 1 FOR UPDATE

*** (2) HOLDS THE LOCK(S):

RECORD LOCKS space id 303 page no 3 n bits 72 index PRIMARY of table `tb_lock_db`.`account` trx id 32822 lock_mode X locks rec but not gap

Record lock, heap no 3 PHYSICAL RECORD: n_fields 4; compact format; info bits 0

0: len 8; hex 8000000000000002; asc ;;

1: len 6; hex 000000008025; asc %;;

2: len 7; hex e10000019d0110; asc ;;

3: len 5; hex 8000000000; asc ;;

 

*** (2) WAITING FOR THIS LOCK TO BE GRANTED:

RECORD LOCKS space id 303 page no 3 n bits 72 index PRIMARY of table `tb_lock_db`.`account` trx id 32822 lock_mode X locks rec but not gap waiting

Record lock, heap no 2 PHYSICAL RECORD: n_fields 4; compact format; info bits 0

0: len 8; hex 8000000000000001; asc ;;

1: len 6; hex 000000008024; asc $;;

2: len 7; hex e00000019b0110; asc ;;

3: len 5; hex 8000000000; asc ;;

 

*** WE ROLL BACK TRANSACTION (2)

------------

TRANSACTIONS

------------

Trx id counter 32843

Purge done for trx's n:o < 32816 undo n:o < 0 state: running but idle

History list length 4

LIST OF TRANSACTIONS FOR EACH SESSION:

---TRANSACTION 421681565418024, not started

0 lock struct(s), heap size 1136, 0 row lock(s)

---TRANSACTION 421681565417104, not started

0 lock struct(s), heap size 1136, 0 row lock(s)

---TRANSACTION 421681565416184, not started

0 lock struct(s), heap size 1136, 0 row lock(s)

---TRANSACTION 421681565415264, not started

0 lock struct(s), heap size 1136, 0 row lock(s)

--------

FILE I/O

--------

I/O thread 0 state: waiting for completed aio requests (insert buffer thread)

I/O thread 1 state: waiting for completed aio requests (log thread)

I/O thread 2 state: waiting for completed aio requests (read thread)

I/O thread 3 state: waiting for completed aio requests (read thread)

I/O thread 4 state: waiting for completed aio requests (read thread)

I/O thread 5 state: waiting for completed aio requests (read thread)

I/O thread 6 state: waiting for completed aio requests (write thread)

I/O thread 7 state: waiting for completed aio requests (write thread)

I/O thread 8 state: waiting for completed aio requests (write thread)

I/O thread 9 state: waiting for completed aio requests (write thread)

Pending normal aio reads: [0, 0, 0, 0] , aio writes: [0, 0, 0, 0] ,

ibuf aio reads:, log i/o's:, sync i/o's:

Pending flushes (fsync) log: 0; buffer pool: 0

1363 OS file reads, 2200 OS file writes, 624 OS fsyncs

0.00 reads/s, 0 avg bytes/read, 0.00 writes/s, 0.00 fsyncs/s

-------------------------------------

INSERT BUFFER AND ADAPTIVE HASH INDEX

-------------------------------------

Ibuf: size 1, free list len 0, seg size 2, 0 merges

merged operations:

insert 0, delete mark 0, delete 0

discarded operations:

insert 0, delete mark 0, delete 0

Hash table size 34673, node heap has 2 buffer(s)

Hash table size 34673, node heap has 1 buffer(s)

Hash table size 34673, node heap has 0 buffer(s)

Hash table size 34673, node heap has 2 buffer(s)

Hash table size 34673, node heap has 2 buffer(s)

Hash table size 34673, node heap has 1 buffer(s)

Hash table size 34673, node heap has 1 buffer(s)

Hash table size 34673, node heap has 2 buffer(s)

0.00 hash searches/s, 0.00 non-hash searches/s

---

LOG

---

Log sequence number 40874759

Log flushed up to 40874759

Pages flushed up to 40874759

Last checkpoint at 40874750

0 pending log flushes, 0 pending chkp writes

371 log i/o's done, 0.00 log i/o's/second

----------------------

BUFFER POOL AND MEMORY

----------------------

Total large memory allocated 137428992

Dictionary memory allocated 1671263

Buffer pool size 8191

Free buffers 6943

Database pages 1237

Old database pages 476

Modified db pages 0

Pending reads 0

Pending writes: LRU 0, flush list 0, single page 0

Pages made young 0, not young 0

0.00 youngs/s, 0.00 non-youngs/s

Pages read 1142, created 95, written 1739

0.00 reads/s, 0.00 creates/s, 0.00 writes/s

No buffer pool page gets since the last printout

Pages read ahead 0.00/s, evicted without access 0.00/s, Random read ahead 0.00/s

LRU len: 1237, unzip_LRU len: 0

I/O sum[0]:cur[0], unzip sum[0]:cur[0]

--------------

ROW OPERATIONS

--------------

0 queries inside InnoDB, 0 queries in queue

0 read views open inside InnoDB

Process ID=1, Main thread ID=140206288668416, state: sleeping

Number of rows inserted 10170, updated 106, deleted 2, read 20807

0.00 inserts/s, 0.00 updates/s, 0.00 deletes/s, 0.00 reads/s

----------------------------

END OF INNODB MONITOR OUTPUT

============================

 

5.SHOW VARIABLES LIKE '%timeout%';

查看服務器配置參數

 

mysql> SHOW VARIABLES LIKE '%timeout%';

+-----------------------------+----------+

| Variable_name | Value |

+-----------------------------+----------+

| connect_timeout | 10 |

| delayed_insert_timeout | 300 |

| have_statement_timeout | YES |

| innodb_flush_log_at_timeout | 1 |

| innodb_lock_wait_timeout | 50 |

| innodb_rollback_on_timeout | OFF |

| interactive_timeout | 28800 |

| lock_wait_timeout | 31536000 |

| net_read_timeout | 30 |

| net_write_timeout | 60 |

| rpl_stop_slave_timeout | 31536000 |

| slave_net_timeout | 60 |

| wait_timeout | 28800 |

+-----------------------------+----------+

13 rows in set (0.00 sec)

6.SELECT * FROM information_schema.INNODB_TRX

查詢 正在執行的事務

列名

描述

TRX_ID

事務Id

TRX_WEIGHT

事務的權重,反映(但不一定是確切的計數)更改的行數和事務鎖定的行數。要解決死鎖,請 InnoDB選擇權重最小的事務作爲回滾的“ 受害者 ”。無論更改和鎖定行的數量如何,已更改非事務表的事務都被認爲比其他事務更重。

TRX_STATE

事務執行狀態。允許值是 RUNNING,LOCK WAIT, ROLLING BACK,和 COMMITTING。

TRX_STARTED

交易開始時間。

TRX_REQUESTED_LOCK_ID

事務當前正在等待的鎖的ID,如果TRX_STATE是LOCK WAIT; 否則NULL。

TRX_WAIT_STARTED

交易開始等待鎖定的時間,如果 TRX_STATE是LOCK WAIT; 否則NULL。

TRX_MYSQL_THREAD_ID

MySQL線程ID,與show processlist中的ID值相對應

TRX_QUERY

事務正在執行的SQL語句

TRX_OPERATION_STATE

交易的當前操作,如果有的話; 否則 NULL。

TRX_TABLES_IN_USE

InnoDB處理此事務的當前SQL語句時使用 的表數。

TRX_TABLES_LOCKED

InnoDB當前SQL語句具有行鎖定 的表的數量。(因爲這些是行鎖,而不是表鎖,所以通常仍可以通過多個事務讀取和寫入表,儘管某些行被鎖定。)

TRX_LOCK_STRUCTS

事務保留的鎖數。

TRX_LOCK_MEMORY_BYTES

內存中此事務的鎖結構佔用的總大小

TRX_ROWS_LOCKED

此交易鎖定的大致數字或行數。該值可能包括實際存在但對事務不可見的刪除標記行

TRX_ROWS_MODIFIED

此事務中已修改和插入的行數。

TRX_CONCURRENCY_TICKETS

一個值,指示當前事務在被換出之前可以執行多少工作

TRX_ISOLATION_LEVEL

當前事務的隔離級別。

TRX_UNIQUE_CHECKS

是否爲當前事務打開或關閉唯一檢查。例如,在批量數據加載期間可能會關閉它們

TRX_FOREIGN_KEY_CHECKS

是否爲當前事務打開或關閉外鍵檢查。例如,在批量數據加載期間可能會關閉它們

TRX_LAST_FOREIGN_KEY_ERROR

最後一個外鍵錯誤的詳細錯誤消息(如果有); 否則NULL

TRX_ADAPTIVE_HASH_LATCHED

自適應哈希索引是否被當前事務鎖定。當自適應哈希索引搜索系統被分區時,單個事務不會鎖定整個自適應哈希索引。自適應哈希索引分區由innodb_adaptive_hash_index_parts,默認設置爲8。

TRX_ADAPTIVE_HASH_TIMEOUT

是否立即爲自適應哈希索引放棄搜索鎖存器,或者在MySQL的調用之間保留它。當沒有自適應哈希索引爭用時,該值保持爲零,語句保留鎖存器直到它們完成。在爭用期間,它倒計時到零,並且語句在每次行查找後立即釋放鎖存器。當自適應散列索引搜索系統被分區(受控制 innodb_adaptive_hash_index_parts)時,該值保持爲0。

TRX_IS_READ_ONLY

值爲1表示事務是隻讀的。

TRX_AUTOCOMMIT_NON_LOCKING

值爲1表示事務是 SELECT不使用FOR UPDATEor或 LOCK IN SHARED MODE子句的語句,並且正在執行, autocommit因此事務將僅包含此一個語句。當此列和TRX_IS_READ_ONLY都爲1時,InnoDB優化事務以減少與更改表數據的事務關聯的開銷

 

7.SELECT * FROM information_schema.INNODB_LOCKS;

查看正在鎖的事務

列名

描述

LOCK_ID

一個唯一的鎖ID號,內部爲 InnoDB。

LOCK_TRX_ID

持有鎖的交易的ID

LOCK_MODE

如何請求鎖定。允許鎖定模式描述符 S,X, IS,IX, GAP,AUTO_INC,和 UNKNOWN。鎖定模式描述符可以組合使用以識別特定的鎖定模式。

LOCK_TYPE

鎖的類型

LOCK_TABLE

已鎖定或包含鎖定記錄的表的名稱

LOCK_INDEX

索引的名稱,如果LOCK_TYPE是 RECORD; 否則NULL

LOCK_SPACE

鎖定記錄的表空間ID,如果 LOCK_TYPE是RECORD; 否則NULL

LOCK_PAGE

鎖定記錄的頁碼,如果 LOCK_TYPE是RECORD; 否則NULL。

LOCK_REC

頁面內鎖定記錄的堆號,如果 LOCK_TYPE是RECORD; 否則NULL。

LOCK_DATA

與鎖相關的數據(如果有)。如果 LOCK_TYPE是RECORD,是鎖定的記錄的主鍵值,否則NULL。此列包含鎖定行中主鍵列的值,格式爲有效的SQL字符串。如果沒有主鍵,LOCK_DATA則是唯一的InnoDB內部行ID號。如果對鍵值或範圍高於索引中的最大值的間隙鎖定,則LOCK_DATA 報告supremum pseudo-record。當包含鎖定記錄的頁面不在緩衝池中時(如果在保持鎖定時將其分頁到磁盤),InnoDB不從磁盤獲取頁面,以避免不必要的磁盤操作。相反, LOCK_DATA設置爲 NULL。

 

8.SELECT * FROM information_schema.INNODB_LOCK_WAITS;

查看等待鎖的事務

列名

描述

REQUESTING_TRX_ID

請求(阻止)事務的ID。

REQUESTED_LOCK_ID

事務正在等待的鎖的ID。

BLOCKING_TRX_ID

阻止事務的ID。

BLOCKING_LOCK_ID

由阻止另一個事務繼續進行的事務所持有的鎖的ID

 

 

 

 

 

 

 

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章