0

私が使用した ERP アプリケーションの 1 つは、データベースに接続するユーザー (ユーザー A など) が 1 人だけになるように構成されていました。システムにログオンして何かをしようとしたアプリケーションのユーザー (従業員は数千人) は、事実上、ユーザー A を呼び出してデータベースに接続し、ユーザーに代わってクエリを実行していました。データベースは Oracle でした。

mySQLで同様のことを達成する方法を考えていました。私はphpとmySQLデータベースで構築されたWebアプリケーションを持っています。さまざまな人が Web 経由でデータベースにクエリを実行することを期待しています。現在、ユーザーが Web ページを開くと、データベースへの接続は単一の db ユーザーを介して行われます。クエリの最後で、接続を閉じます。ただし、データベースの最大ユーザー接続数は 10 です。これは、私の理解では、1 人のユーザーが最大 10 の接続しか確立できないことを意味します。アプリケーションを使用しようとするすべての人のために複数のユーザーを作成する必要はありません (アプリケーションを使用する人の数もわかりませんし、これがスケーラブルなソリューションになるとは思いません)。

4

2 に答える 2

0

Web サーバーまたはプログラミング言語のコンポーネントとして、db 接続キャッシュ メカニズムを探す必要があります。このようなメカニズムは、接続を透過的に再利用します。

于 2009-07-29T20:23:02.277 に答える
0

データベース接続が拒否された場合、HTTP エラー 502 が返されます。各ページ読み込みの最後に接続が閉じられた場合、接続は最大 100 ミリ秒しか続かないため、ほとんどの状況で同時接続は少なくなります。

調整する必要がある場合は、my.cnf を編集して同時接続を増やします。

max_connections = 150
max_user_connections = 150

トラフィックが非常に多い場合は、PHP で永続的な MySQL 接続を有効にするか、コンテンツをキャッシュしてデータベースに打撃を与えないようにすることができます。

それが役立つことを願っています!

于 2009-07-29T20:33:43.687 に答える