何が大問題ですか? 長時間実行され、長時間コミットされないトランザクションは、大規模トランザクションと呼ばれます。 大企業の原因
大きな出来事の影響
大規模なトランザクションをクエリする方法 **注**: この記事の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の実装
日常業務では、ログを表示する必要がよくあります。たとえば、 tail コマンドを使用してログをリアル...
コンテキストの定義と目的コンテキストは、コンポーネント ツリーにプロパティを明示的に渡すことなく、コ...
目次1. データをバックアップするためのmysqldumpコマンド2. 一般的なmysqldump操...
目次1. 簡単な紹介2. 間隔を設定する2.1 説明2.2 パラメータ2.3 戻り値2.4 使用法3...
この記事では、主に CSS3 フレックス エラスティック ボックスの自動塗りつぶしの書き方について詳...
方法1: MySQL では、次のコマンド ラインで MySQL サーバーを起動することにより、アクセ...
mysqlrootパスワードの設定と変更初めて MySQL データベースに入ります。 !環境変数にm...
目次まとめ問題の説明問題を分析する問題を解決するまとめ複雑な知識をシンプルに説明できることは重要です...
1行のコマンド docker run -d \ -v /share:/home/vsftpd \ -...
数日前、Codepen で @Kyle Wetton が書いた、CSS ブレンディング モードと S...
目次現状解決さらなる解決策やっと現状WeChat ミニプログラムには、ホームページ、個人ページ、いく...
目次マルチアプリケーションの展開1-Tomcat 構成1.1- プロジェクト構成1.2-サービス構成...
目次主キー制約ユニーク制約主キー制約PRIMARY KRY 主キーは一意です。テーブルには主キーを ...
以前作成されたデータベースの ogg プロセスは、発見されるまでの約半月間ダウンしていました。起動で...
序文:この記事では主に、MySQL の where、group by、order by、limit、...