2016-06-15 4 views
2

MySQLデータベースで一時的なユーザーを作成し、24時間後にドロップするというユースケースがあります。私は、プロセスを自動化し、ユーザー作成スクリプトでパッケージ化してプロセスを追跡する必要がないように、これを十分に実行します。MySQLイベントスケジューリングのパフォーマンスへの影響

私は、MySQLのイベントスケジューリングのパフォーマンスへの影響についてのドキュメント、質問、ゴシップをインターネットで見てきましたが、落胆したことは何も見つかりませんでした。私はMySQLの予定された "コスト"に関する別の質問を見ましたが、議論ではほとんどの場合、cronを使ったDBタスクのスケジューリングとMySQLイベントスケジューリングの使用を比較しています。

私はAmazon RDSで動作していますので、cronは私のためには動作しません。 MySQLのイベントスケジューリングは適切なソリューションのように見えます。かなり軽量なイベントを予定しています。作成後24時間で、一度に1人のユーザーを落としますが、MySQLのイベントスケジューラを24時間365日有効にしておく必要があります。これにパフォーマンス上のコストはありますか?そうでない場合、デフォルトでイベントスケジューラーが有効になっていないのはなぜですか?

+0

一時的なユーザーのMySQLデータベースレベルユーザーまたはアプリケーションレベルのユーザーが、MySQL内に格納されていますか? – Shadow

+0

イベントスケジューラは、デフォルトでは、サーフェスエリアを下げてパフォーマンスを低下させることはできません。 12時間に1回実行されるイベントは、ボートを揺らしているわけではありません(少なくともスリープスレッドのスタンドポイントから)。スケジューラや特定のイベントを名前でオン/オフするには、私の答え[here](http://stackoverflow.com/a/37824952)を参照してください。 – Drew

答えて

0

スケジューラのコストは、スケジューラが実行するSQLのコストと比べて無関係です。 High Performance MySQLは、次のように説明しています。

イベントは、接続とは関係がないため、別々のイベントスケジューラスレッドによって開始されます。彼らは入力を受け付けず、値も返しません。入力を受け取ったり、値を返すための接続はありません。 ストアドプロシージャに適用されるのと同様の考慮事項がイベントに適用されます。まず、サーバーに追加作業をさせます。イベントのオーバーヘッド自体は最小限ですが、それが呼び出すSQLはパフォーマンスに深刻な影響を与える可能性があります。

私は、彼らがはハイパフォーマンスMySQLのも議論impact on statement-based replicationを持っているので、イベントはデフォルトでは有効になっていないと思われる:

[E]の通気孔は、文に伴う問題の同じ種類を引き起こす可能性があります他のストアドコードが引き起こす可能性がある

最終的には、任意のデータベースの問題のように、あなたには2つのインスタンスが同じものはありませんし、何の解決策は普遍的ではないので、自分のスキーマにソリューションを実装し、効果にを測定する必要があります。

関連する問題