• ベストアンサー

MySQLのデータ監視

ある値が規定値を下回った場合に、ある処理(insert文の実行など)を動かすということは可能なのでしょうか? 今は、PHPで無限ループを作り、その中でselect文を実行し値チェック後、処理起動とすることで常時監視しようかと思っているのですが効率が悪い気がするので何かいい案があれば教えていただければと思います。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • gtx456gtx
  • ベストアンサー率18% (194/1035)
回答No.1

実際にトリガーが適用できるか不明ですが、一般的にはトリガーを利用すると思います。 URL http://dev.mysql.com/doc/refman/5.1/ja/triggers.html

shaka001
質問者

お礼

回答ありがとうございます。 お礼が遅くなってしまし申し訳ありません。 トリガーが使えるか調べてみます。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

回答No.2

その値が自動的に更新されるのでないのでしたら その値の更新時の処理に盛り込むべきだとおもいます。 もしくは締め時間を設定してcronで動かすべきかと。

shaka001
質問者

お礼

回答ありがとうございます。 お礼が遅くなってしまし申し訳ありません。 更新時の処理に盛り込めるか検討してみます。 cronは、共有サーバーを使うことになりそうなので使用できません。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • プロセス監視の方法

    どのたかよい方法をご存知の方いらっしゃいましたら、 助力お願いします。 .NETのアプリケーションで、ある特定のプロセスが起動した時に 処理を実行するアプリを作りたいと思っています。 この場合のあるプロセスとは、Notepadとか、Wordとかです。 無限ループで、プロセスを監視しようと思ったのですが、 メモリの消費が多く重たいので、何かよい方法はないでしょうか? 例えば、ある特定のプロセスが起動したら、 それがトリガーとなるような仕組みとか、可能でしょうか? よろしくお願いします。

  • MySQLに100万件登録する最も効率の良い方法

    A(600)xB(800)xC(3)で144万件の作成してMySQLへ登録したい のですが、最も効率良く登録する方法は何でしょうか? 私がとりあえず思いつくのは、下記2つのうち案2)です。 案1)プログラム&MySQL 1.PHPなどのプログラムのループ処理でテストデータを作成 2.mysql>LOAD DATA INFILE "/path/to/file.csv" INTO TABLE tablename FIELDS TERMINATED BY ","; 懸念点:メモリが足りず小分けにしないとインポートできなそう。 案2)プログラムのみ 1.PHPなどのプログラムのループ処理でテストデータを作成し、   1つのINSERT文で、1000件ぶんを一気にコミット 例:INSERT INTO table (a,b,c) VALUES (1,1,1),(1,1,2)・・・

  • phpとmysqlの初心者の疑問

    すいませんphpとmysqlの処理のしくみがわかってないです phpの処理の中でmysqlからSELECTで値を取得する場合 mysqlが大量のデータで処理に時間がかかった場合は、SELECTの処理に5秒くらいかかっても、phpの処理の中でそこで待ってくれているんですか? SELECTの処理が何秒かかったとしても終わってから次のphpの処理にいっているんですか? phpって速いのにmysqlのスピードが遅かったらちゃんと読み込まれないんじゃないかと心配になっています

    • ベストアンサー
    • MySQL
  • 別サーバーのデータの取得

    ●仕様環境:PHP5 常時起動しているサーバAからサーバBのHTML部分をHTTP リクエストで一定時間毎に取得したいのですが下記の事がわかりません。 ●質問 サーバA側のプログラミングはループなりで待たせて置き、 データ取得のタイミングがきたらBサーバにリクエストを 出すと言った処理を考えましたが、 サーバA側のプログラミングで、 (常時実行)無限ループで待たせて置く命令を書いたとしても、 そのサーバA側プログラミングへ、クライアント側からアク セスしないと最初の実行開始が出来ないと思うのですが、 PHPではこの様な処理をする事は不可能でしょうか? もし、不可能ならば、サーバ上で実現するにはどのような実 装のさせ方がありますでしょうか? ●補足 ※クライアントサイドでは無い前提で、教えていただけません でしょうか? リクエストを出す時点でクライアントプログラミングになるかも 知れませんがデスクトップアプリケーションの様な形では無く実 現させたいのです、表現が間違ってましたら申し訳ありません。

    • ベストアンサー
    • PHP
  • 指定プログラムのプロセスを監視・killするには?

    CGIが不正終了(もしくは無限ループ)して、CPUに負担をかけ続けることで悩んでいます。 topコマンドで負担をかけているプロセスを発見してkillすることは可能ですが、これを自動で実行するようなことはできないでしょうか。 cronを使って1分間に1度チェックし、3分以上同じプロセスが動いている場合にkillしたり、もしくは不具合の起こる特定のプログラム(hoge.cgi等)を監視してkillするということができるようにしたいのです。 自分で考えたのは「top -n 1」で出力して、3分間同じプロセスがCPUに負担をかけ続けている場合にkillできるようにphpなどでプログラミングすることでしたが、もっと簡単にできるような方法がありますでしょうか。

  • レジストリ監視ツール

    どうも、妙なツールをインストールしてしまったのか、レジストリに定期的に値を書き込まれてしまいます。 一応、ウイルスチェックなどはかけてみて、特に問題は見当たらないのですが……どうも、定期的にユーザーエージェントに書き込まれます。 そこで、その原因を突き止めようと思ったので、レジストリ監視ツールを探そうかと思ってますが、何か良いツールはありますでしょうか? 基本的には、常時監視でもしながら、何か書き込まれた時に、その値及び、どのタスクがレジストリに書き込んだのか? というのが判れば良いのですが、そのようなツールはフリーでありますでしょうか? 知ってましたら、よろしくお願いいたします。

  • MySQLからデータを1つ取り出すのに要した時間を表示させたい

    はじめまして。いつも皆さんの質問・回答を見て勉強させていただいてます。 今、DBを使ったJavaの検索システムを構築しており、検索時の効率を上げる為のデータとして、検索時に要した時間を表示させたいと思っております。 また、それは全体(SQL文を実行する)に要した時間ではなく、データ一つを検出するのにどれだけ時間を要したか?という値を知りたいのです。 つまり、クエリ実行の結果ではなく、SQL文1つの結果に「Aichi,Gifu,Tokyo」が該当したとして、それぞれをテーブルから探し出した各々の時間を計りたいのです。 イメージとしては下記のようになります。 データ名 | 検索時間(sec) Aichi   | 1.23 Gifu    | 0.23 Tokyo   | 3.53 環境としては Java:jdk1.6.0_13 MySQL:ver5.5 です。 以下の点を考慮しましたが、壁にぶつかってしまいました ・insert文で新たに検索時間を格納するフィールドを作る(検索ごとにデリート、インサートしてたらキリがない) 以上、ご指導よろしくお願いします。

  • 初学者向け無限ループ検出ツールの作成について

    初学者向けに無限ループを検出するツールを作りたいと思っています 確かに制作したプログラムをコンパイルし、実行してしまったらいいのですが… 初学者には無限ループを発見するのが難しいと思います そこで、初学者に対しどこが無限ループの可能性があるかを教えるツールの開発を目指しています 自分の中ではオーバーヘッドがない(少ない)静的解析を行いたいと思っています 構文解析を行い、ループ文を発見したあとの考え方が分からずに困っています 条件文に使う値の変化はデータフロー解析を用いればいいことはわかっていますが、その解析にもいろいろな種類があり、どれをどのように使えばいいかわかりません また、ループ分中の条件文の変数の変化をどう考慮して無限ループを検出するかが思いつかず困っています

  • mysqlで変数を使う方法

    SQL文にPHPの変数のように変動する値を指定することはできますでしょうか。 データベースから特定のレコードを拾ってきて PHPのPOSTメソッドでその値を送信するシステムを作ろうとしています。 具体的には、データベースに名簿(IDと名前だけの簡単なものです)を 予め作っておき、送信ボタンをクリックしたユーザーのIDと紐付いている 名前を送信したいと考えています。 [MySQL] table:meibo id | name ------------ 1 | itou 2 | yamada 3 | suzuki [PHPソース](一部抜粋) ------------ $sql = mysql_query('SELECT * FROM meibo where id=【ここを変動させたい】', $connect); $sql = mysql_fetch_array($sql); $req->addPostData("user_name", $sql['name']); ------------ $idに操作しているユーザーのIDが代入されているとして 以下のようにmysql_queryの中で実行しているSELECT文に$idを利用することは可能でしょうか。 SELECT * FROM meibo where id=$id もし上記のような方法が無理な場合、 代替案をご提案いただけると非常に助かります。 読みにくい文章で恐縮ですが、 どうかお助けください。 よろしくお願いします。

    • ベストアンサー
    • MySQL
  • DBのMySQLからデータを1つ取り出すのに要した時間を表示させたい

    はじめまして。いつも皆さんの質問・回答を見て勉強させていただいてます。 今、DBを使ったJavaの検索システムを構築しており、検索時の効率を上げる為のデータとして、検索時に要した時間を表示させたいと思っております。 また、それは全体(SQL文を実行する)に要した時間ではなく、データ一つを検出するのにどれだけ時間を要したか?という値を知りたいのです。 イメージとしては下記のようになります。 データ名 | 検索時間(sec) Aichi   | 1.23 Gifu    | 0.23 Tokyo   | 3.53 環境としては Java:jdk1.6.0_13 MySQL:ver5.5 です。開発環境は整っており、eclipseでソースをいじるといった形です。 以下の点を考慮しましたが、壁にぶつかってしまいました ・insert文で新たに検索時間を格納するフィールドを作る(検索ごとにデリート、インサートしてたらキリがない) ・Javaにあるメソッドを使って値を取得する(有効なメソッドがない?) 以上、ご指導よろしくお願いします。

Wi-Fi接続設定できない問題
このQ&Aのポイント
  • モバイル端末のWi-Fi接続設定ができない問題について質問があります。
  • 製品名はWRC-1750GHBK2-Iです。
  • 昨日からWi-Fi接続ができない状況で困っています。
回答を見る