0

データベースユーザーの数が異なる.Netクラスからデータベースにアクセスすることの長所と短所を理解しようとしています。
次のような mysql ユーザーを 1 つだけ使用することに反対する議論はありますか

new MySqlConnection("SERVER=localhost;DATABASE=db;UID=alwaysthesameuser;PASSWORD=1234;")

または、より多くのユーザーを使用する方が良いでしょうか?

このアプリケーションは、最大 100 人のユーザー (クライアントで作業しているユーザー) によって同時に使用されます。すべてのクエリはサーバー マシンで実行されます。

後で問題を引き起こす可能性があることを考慮しなければならないことはありますか?

4

2 に答える 2

1

多数のユーザーアカウントではなく、単一の「アプリケーションユーザー」データベースアカウントを使用すると、パフォーマンスが向上します。

大きな利点は、接続を共有できる接続プールを利用できることです。個別のアカウントが多数ある場合、ユーザーアカウントごとに1つずつ、多数の接続プールが必要になります。避けたいのは、「接続のチャーン」、つまりデータベースへの接続とデータベースからの切断を繰り返すことです。これにより、パフォーマンスとスケーラビリティが制限されます。

アカウントを作成/ロック/ドロップしたり、特権を付与/取り消したりする必要がないため、(少なくともデータベース側では)管理上の利点もあります。mysql.user、、などのテーブルに多くの行がある場合にどの程度の効果があるかはわかりませんが、mysql.db多くの行があると何かがスピードアップする可能性は低いと思います。

于 2012-07-17T15:03:53.250 に答える
1

経験則として、データベース接続をスケーリングするには、接続プールを設定します。同じユーザーを使用してください。これをアプリケーション ユーザーと呼びます。接続プーリングは、パフォーマンス指向のデータベース アプリケーションでは必須です。

もちろん、これは層モデルを使用していると仮定しています。あなたの投稿から判断すると、階層モデルがあるようです。.net で接続プールをセットアップする方法がわからない場合は、Google にアクセスしてください。私の理解では簡単です。

于 2012-07-17T14:45:59.050 に答える