ビューMySQLのロックビュー

キーワード:mysqlのロック競合、MySQLのロックビュー

--------------------- 
著者:ボーダータウンCN 
出典:CSDN 
オリジナルます。https://blog.csdn.net/miyatang/article/details/78227344 
著作権:この記事では、ブロガーのオリジナルの記事、再現され、ボーエンのリンクを添付してください!

ビューテーブルロックケース

MySQLの>「テーブル%」のようなショーのステータス。
+ ---------- + --- +
| 変数名| バリュー|
+ ---------- + --- +
| Table_locks_immediate | 795505 |
| Table_locks_waited | 0 |
| Table_open_cache_hits | 0 |
| Table_open_cache_misses | 0 |
| Table_open_cache_overflows | 0 |
+ ---------- +···+
セットにおける5行(0.00秒)

Table_locks_immediateは、テーブル・レベルのロックへの即時アクセスの数を指す
テーブル・レベルのロックの数を指すTable_locks_waited直ちに得ることができず、待機するように、多量であれば、そのロック待ちのためのロック競合を示します

ビューは、テーブルがロックされて
IN_USEが> 0 OPEN TABLESを示し;

MySQLの> IN_USEが> 0 OPEN TABLESを示し;
+ ----- + ----- + --- + ----- +
| データベース| 表| IN_USE | Name_locked |
+ ----- + ----- + --- + ----- +
| 音楽| class_record | 1 | 0 |
| vipswoole | chat_message | 3 | 0 |
| 音楽| USER_ACCOUNT | 1 | 0 |
| 音楽| sales_channel | 1 | 0 |
| 音楽| class_room | 5 | 0 |
| 音楽| ユーザー| 1 | 0 |
| music_school | ユーザー| 1 | 0 |
+ ----- + ----- + --- + ----- +
集合における7行(0.00秒)

MySQLの>

あなたが深刻な状態での競合をロックするに見える場合は、現在実行中のSQLを表示することができます:
MySQLを> PROCESSLISTを表示

(mysqladminは-uroot -p -P 3306 PROCESSLIST)

mysqladminのデバッグコマンドはパラメータを持っている、あなたは、次のようにmysqladminのコマンドを実行し、ここでは詳細で、私たちは、このコマンドを解析し、MySQLのサービスの現在の状態をMySQLのサービスの現在のステータスに関する情報を分析することができますが、また、私たちは現在のロックの詳細情報を見つけやすくするために使用することができます。

[ルート@のphpmysql02データ]#mysqladminの-ujss -p -S /data/3306/mysql.sockデバッグ

パスワードを入力:
デバッグステータス情報は、通常は情報が最後の数行に保存されますロック、エラーファイルのmysqlを生成します、ここでは、オペレーティングシステムレベルのエラー・ログの最後の数行で、私たち:

[ルート@のphpmysql02データ]#テール-10 phpmysql02.err

LOCK_TYPE待ち/スレッドdatabase.table_nameロック
2 hdpic.t_wiki_zutuウェイティング-最高の優先順位は、ロックを書く
123 890 hdpic.t_wiki_zutu_categoryロック-低優先読むリードロック
123 890 hdpic.t_wiki_zutu_photoロック-低優先読むリードロック
123 890 hdpic.t_wiki_zutuはロック-低優先順位を読みます読み取りロック
124 906 hdpic.t_wiki_zutuの待機-読み取りロックを読み取る低優先度
我々の推論に沿って、これらの情報から分かる書き込みブロッキング123890の保持読み取りロックと操作2 124 906を読み取り、その状態、次のプロセスが多いですシンプル、そして現状は容認できないとするリソースを解放し、殺害123890まで、待ち続けることができない場合:

MySQLの> 123890を殺します。

クエリOK、影響を受けた0行(0.00秒)
PROCESSLISTのビューを表示する再実行するには:

システムロックテーブルクエリを使用します。

選択r.trx_isolation_level、r.trx_id waiting_trx_id、r.trx_mysql_thread_id waiting_trx_thread、
r.trx_state waiting_trx_state、lr.lock_mode waiting_trx_lock_mode、lr.lock_type waiting_trx_lock_type、
lr.lock_table waiting_trx_lock_table、lr.lock_index waiting_trx_lock_index、r.trx_query waiting_trx_query、
b.trx_id blocking_trx_id、 b.trx_mysql_thread_id blocking_trx_thread、b.trx_state blocking_trx_state、
lb.lock_mode blocking_trx_lock_mode、lb.lock_type blocking_trx_lock_type、lb.lock_table blocking_trx_lock_table、
lb.lock_index blocking_trx_lock_index、b.trx_query blocking_query
b.trx_id =上information_schema.innodb_trx bを内部結合wはinformation_schema.innodb_lock_waitsからw.blocking_trx_id
内側はr.trx_id = w.requesting_trx_id上のR information_schema.innodb_trx参加
内側をlb.lock_trx_id = w.blocking_trx_idにinformation_schema.innodb_locksのLB参加
インナーlr.lock_trx_id = w.requesting_trx_id \ G上にlr information_schema.innodb_locksに参加

表3は、関与を示しています。

information_shcemaで3つのテーブル(これらのテーブルは、現在のトランザクションを監視することにより、更新され、ロックの問題の存在について分析することができる)
- (現在アクティブな印刷のInnoDBカーネル(ACTIVE)業務)innodb_trx
- innodb_locksは、(この状態生成のInnoDBを印刷)がロック待機場合にのみ印刷をロック
- innodb_lock_waits()待機中の印刷ロック待機がある場合にのみInnoDBの印刷ロック状態電流が発生

1)innodb_trxテーブル構造の説明(8つの分野の中で最も占いの除去)
フィールド名説明
内部はInnoDBストレージエンジンに唯一ID trx_id
TRX_STATE
事務の現在の状態を(実行し、二つの状態を待つロック)
trx_started
時の事を開始する
まで待機trx_requested_lock_idそのようなロック待ちの状態trx_stateようなもの、のIDをロックし、その後、trx_stateが値を待ってロックしていない場合は、IDを待っている現在のトランザクションで値テーブルの前にリソースを取る事がNULLで
待って物事trx_wait_started開始時刻
に、重いtrx_weight物事を正しくデッドロックをロールバックする必要がある、InnoDBストレージエンジンが最小値のロールバックを選択しますInnoDBストレージエンジン、
すなわち結果がPROCESSLISTが表示さを示し、スレッドID trx_mysql_thread_idのmysqlの
SQL文を実行しているtrx_query物事を
2)innodb_locksテーブル構造の説明

フィールド名説明
ロックID LOCK_ID
IDは、物事がlock_trx_id
ロックモードをLOCK_MODE(S及びXロックがモードロック)
LOCK_TYPEロックタイプのテーブルの行ロックまたはロック(RECORD)
lock_tableテーブルをロックする
lock_indexロックインデックス
lock_spaceロックライブオブジェクトIDスペース
lock_page事、ロックされたページの数は、値がNULLである場合、ロックテーブル
lock_recもの、ロックの行数は、値がNULLロック・テーブルの場合
、主キーロックレコードlock_dataの事をもしロックテーブルの値NULL(このオプションは、信頼することはできません)
3)innodb_lock_waitsテーブル構造説明
フィールド名説明
requesting_trx_idのIDの物事がロックリソースの適用
アプリケーションID requested_lock_idロック
、物事IDがblocking_trx_idブロック他のものの
他のロックにロックIDをブロックblocking_lock_idを

これらのテーブルは、次のSQLを参照することができ、より直感的で明確な結果であることを、関節の問い合わせに従って行うことができる(自分の体力の習慣分析に応じて調整することができます)

おすすめ

転載: www.cnblogs.com/gered/p/11078453.html