2017-09-13 8 views
0

私はMySQLワークベンチ6.3 CEを使用しています。私はMySQLの状態変数のスナップショットを撮りたいです。毎秒MySQLステータス変数を取得する方法は?

クエリの実行中に1秒ごとにステータス変数の値を保存します。

「show global status」を使用して変数を表示できます。しかし、1秒ごとに自動的に実行したい。

+0

どこにストア?この質問にはあいまいさがたくさんあります。これが本当に緊急で、メンターやコーチングが必要な場合は、[Codementor](https://www.codementor.io)、[Savvy](https://www.savvy.is)、[Hackhands](https: //hackhands.com)、[airpair](https://www.airpair.com)のいずれかを選択します。 – tadman

+0

は、私がイベントを作成しました: スケジュール 上のイベントstatus_variables_every_second を作成して1秒ごと はグローバルな状態を示してください。 \t しかし、イベントの実行方法はわかりません。クエリの実行開始時にクエリの実行が終了するまで実行したい – Sana

+0

毎秒コードを実行する長時間実行されるスクリプトを作成しますか?それぞれの呼び出しの間に 'sleep(1)'を行うことができます。 – halfer

答えて

0

2つの別々の接続を持つことによって、プロシージャとクエリを同時に実行できます。 Workbenchは便利なツールですが、mysqlコマンドラインツールも使用する方法を学ぶべきです。

クエリはかなり簡単です。 INDEX(l_shipdate)がそれに最適な可能性があります。

クエリをスピードアップする本当の方法は、毎日または毎月の小計の「要約テーブル」を構築して維持することです。合計を合計し、合計を合計します。平均は(SUM(sums)/SUM(counts))です。

もっと議論:http://mysql.rjweb.org/doc.php/summarytables

がインターバル時間よりも長くかかる可能性があります任意のコード(EVENTまたはcronを経由して)実行についての注意が必要です。それが遅れた場合、カスケードしてサーバーを停止させるか、少なくとも重大なものを遅くする可能性があります。そのため、私は多くの場合、WHILEループを好んでいます。

+0

ありがとうリック!どのようにして2つの別々の接続を同時に行うことができますか?そして、どのように私はクエリの実行中にのみ、プロシージャ(ステータスを表示)を実行することができますか?上記のクエリはTPC-hベンチマークからのものです。私はクエリを変更する必要はありません。私はちょうどクエリを実行している間に状態変数のスナップショット(5秒ごと)を取ってみたい。 – Sana

+0

Windowsの場合:スタート>実行> cmd> mysqlを選択します。別のウィンドウを表示するにはもう一度やり直してください。必要なだけ実行してください。 –

+0

ありがとうリック!それは有用です..私は(Ctrl + Shift + T)を押すことによって同じことをMySQLワークベンチで行うことができます。別のタブが開きます。 – Sana

関連する問題