何が大問題ですか? 長時間実行され、長時間コミットされないトランザクションは、大規模トランザクションと呼ばれます。 大企業の原因
大きな出来事の影響
大規模なトランザクションをクエリする方法 **注**: この記事の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の実装
LinuxリモートMySQLデータベースの展開、参考までに、具体的な内容は次のとおりです。 1.0 ...
HTMLタグのリストマークタイプ名前または意味効果述べるファイルのタグ付け<HTML> ...
インストールユーザーにインストール権限があることを確認してくださいルートスイッチなしsuルート(su...
vue を使用してプロジェクトを開発する場合、フロントエンドでは次のような日付と時刻を計算する必要が...
MySQL には読み取りと書き込みを分離するアーキテクチャが多数あります。Baidu のそれらのほと...
js データ型基本データ型: 数値、文字列、ブール値、未定義、null、シンボル、参照データ型: オ...
0. はじめにibdata1 ファイルとは何ですか? ibdata1 は、innodb システム テ...
Springboot プロジェクトをサーバーにデプロイする方法としては、war パッケージにパッケー...
目次1. テンプレート2. ジェネリック3. ジェネリック再帰4. デフォルトのジェネリックパラメー...
目次序文需要分析MySQL ユーザー変数累積計算にMysqlユーザー変数を使用する要約するこの記事で...
目次序文文章1. パネル2. 華容島ソリューション3. コード4. 注記序文華容路とは何ですか? 誰...
たった15行のCSSでiPhoneがクラッシュするWire のセキュリティ研究者 Sabri Had...
目次1. ジョブ実行のフォールトトレランス1.1 タスクフェイルオーバー戦略1.2 ジョブ再開戦略2...
目次1 約束呼び出しチェーンを中断する約束を破る中止メソッドのラッピング - Axios の Can...
目的: ステーションAをステーションBのセカンダリディレクトリとして扱うのように: http://w...