何が大問題ですか? 長時間実行され、長時間コミットされないトランザクションは、大規模トランザクションと呼ばれます。 大企業の原因
大きな出来事の影響
大規模なトランザクションをクエリする方法 **注**: この記事のSQL操作はMySQLバージョン5.7に基づいています。 クエリ実行時間が 10 秒を超える場合を例に挙げます。 information\_schema.innodb\_trx から TIME\_TO\_SEC(timediff(now(),trx\_started))>10 となる \* を選択します。 大きな取引を避ける方法 一般的な解決策
mysql5.7 に基づくソリューション
付録 クエリトランザクション関連ステートメント **注**: SQL文はMySQL 5.7バージョンに基づいています # 実行中のすべてのトランザクションとその実行時間を照会します。 select t.\*,to\_seconds(now())-to\_seconds(t.trx\_started) idol\_time from INFORMATION\_SCHEMA.INNODB\_TRX t # トランザクションの詳細と実行されたSQLを照会する information\_schema.innodb\_trx a から now(),(UNIX\_TIMESTAMP(now()) - UNIX\_TIMESTAMP(a.trx\_started)) diff\_sec,b.id,b.user,b.host,b.db,d.SQL\_TEXT を選択し、information\_schema.innodb\_trx a を内部結合し information\_schema.PROCESSLIST b を生成します。 a.TRX\_MYSQL\_THREAD\_ID=b.id かつ b.command = 'Sleep' の場合 内部結合パフォーマンス\_schema.threads c ON b.id = c.PROCESSLIST\_ID 内部結合 performance\_schema.events\_statements\_current d ON d.THREAD\_ID = c.THREAD\_ID; # トランザクションによって実行されたすべての履歴SQLレコードをクエリする SELECT ps.id 'プロセスID'、 追伸:ユーザー様、 追伸:ホスト、 esh.EVENT_ID、 trx.trx_started、 esh.event\_name 'イベント名', esh.sql\_text 'SQL'、 追伸時間 から パフォーマンス\_SCHEMA.イベント\_ステートメント\_履歴 esh PERFORMANCE\_SCHEMA.threads th を esh.thread\_id = th.thread\_id に結合します information\_schema.PROCESSLIST ps を ps.id = th.processlist\_id に結合します。 LEFT JOIN information\_schema.innodb\_trx trx ON trx.trx\_mysql\_thread\_id = ps.id どこ trx.trx_id は NULL ではありません かつ ps.USER != 'SYSTEM\_USER' 注文する esh.EVENT_ID; # 単純なクエリトランザクションロック select \* from sys.innodb\_lock\_waits #トランザクションロックの詳細を照会するSELECT tmp.\*, c.SQL\_テキストブロッキング\_sql\_text、 p.HOST ブロッキング\_ホスト から ( 選択 r.trx_state 監視中のtrx_state、 r.trx_id 待機中のtrx_id、 r.trx\_mysql\_thread\_Id 待機中\_スレッド、 r.trx_query 待機クエリ、 b.trx_state ブロッキングtrx_state、 b.trx_id ブロッキングtrx_id、 b.trx\_mysql\_thread\_id ブロッキング\_スレッド、 b.trx_query ブロッキングクエリ から 情報\_schema.innodb\_lock\_waits w INNER JOIN information\_schema.innodb\_trx b ON b.trx\_id = w.blocking\_trx\_id INNER JOIN information\_schema.innodb\_trx r ON r.trx\_id = w.requesting\_trx\_id ) 一時、 情報\_schema.PROCESSLIST p、 パフォーマンス\_SCHEMA.イベント\_ステートメント\_現在のc、 PERFORMANCE\_SCHEMA.threads t どこ tmp.blocking_thread = p.id かつ t.thread_id = c.THREAD_ID かつ t.PROCESSLIST_ID = p.id 上記は、MySQL で大規模トランザクションを回避する方法と大規模トランザクションを解決する方法の詳細です。MySQL の大規模トランザクションの詳細については、123WORDPRESS.COM の他の関連記事に注目してください。 以下もご興味があるかもしれません:
|
<<: 単一マシン上での Tomcat の複数インスタンスの実装
>>: ReactプロジェクトでのTypeScriptの実装
1. 内閣府マスターノードを監視することで、他のスレーブノードへの自動フェイルオーバーを実現できます...
html <div class="totop" v-show="...
その特性は次のとおりです。方向アクティブな字幕のスクロール方向を設定するコードは次のとおりです。 &...
もうナンセンスじゃない、郵便番号HTML部分 <div class="positio...
シナリオ:クロールされたデータは、別のメインテーブルと同じ構造を持つデータテーブルを生成するため、マ...
【コンテンツ】: 1.背景画像のグラデーションスタイルを使用する2. スケールを使ってズームできる...
前回の記事では、JS を使って簡単な揺れ効果を実現する方法を紹介しました。ご興味があればクリックして...
1. システム内で開いているファイルの最大数を確認する #現在のリソース制限設定を表示する ulim...
HTML を使用してコンテンツをマークアップする目的は、Web ページにセマンティクスを与えることで...
順序なしリストでは、順序なしリストのシンボルは各リストの前に表示されるドットです。順序付きリスト o...
目次1. 配列を宣言して初期化する2. 合計、最小値、最大値を計算する3. 文字列、数値、オブジェク...
XMeter API は、以下のサービスを含む、JMeter に基づくワンストップのオンライン イン...
a タグが新しいページを開くかどうか: (1)百度百科事典:ヘッダーが異なる場合は新しいページが開き...
目次TOKEN タイマーリフレッシュ2. access_tokenの内部設計2.1 access_t...
序文Intel のハイパースレッディング テクノロジーにより、1 つの物理コア上で 2 つのスレッド...