Webサービスのアクティブなユーザーアカウントなどの情報を含む、あまり頻繁に(月に1回)変更されないMySQLテーブルがある場合。次のようなことをするのはどれほど安全ですか。
public AccountDao
{
List<Account> accounts;
/*fields*/
public AccountDao()
{
refreshAccounts();
}
public void refreshAccounts()
{
this.accounts = /*call to database to get list of accounts*/
}
public boolean isActiveAccount(String accountId)
{
//logic involving in memory list object above
}
}
これを行うのは、Webサービスへのアクセスを許可するために、すべての要求に対してユーザーがアクティブなアカウントを持っていることを確認する必要があるためです。これにより、リクエストごとにデータベースレイヤーへの1回のSQL呼び出し(現時点ではストレスがかかっています)を回避できます。私の質問は、このようなデータを本番環境に保存するのはどれほど安全かということです。
ちなみに、API呼び出しで新しいユーザーアカウントが追加されるたびに、アカウントリストを更新します。上記のように、これは月に1〜2回程度発生します。