mysql を使用するアプリケーションを 24 時間年中無休で実行しています。それのさまざまな機能はmysqlを使用します。これを実装する 1 つの方法は、次のようにアプリケーションでグローバル mysql インスタンスを作成することです。
self.db = MySQLdb.connect(
host=self.settings.MYSQL_HOST_LOCAL,
user=self.settings.MYSQL_USER,
passwd=self.settings.MYSQL_PASS,
db=self.settings.MYSQL_DB,
use_unicode=True,
charset="utf8",
)
を使用してコマンドを実行しますself.db.execute(...)
。これにより、アプリケーションは 1 つの接続を使用します。もう 1 つの方法は、トランザクションを実行する必要があるたびに接続を作成することです。
アプローチ 1 は、アプリケーションが接続を何度も作成および削除することを防ぎますが、理想的なままであると、「mysql が消えてしまう」という問題に直面します。アプローチ 2、「mysql がなくなった」という問題はありませんが、I/O が多すぎます。
これらのアプローチはどちらも正しいものではないと確信していますが、正しいアプローチは何ですか?