3

現在、単純なRESTfulWeb アプリケーション (PHP を使用) を作成していますが、データベース アクセスを効率的に処理する方法がわかりません。問題は、MySQL データベースへの接続を作成するのに非常に時間がかかることです。

私の最初のアイデアは、データベース管理オブジェクトとしてシングルトンを作成することでした。これは、接続がまだセットアップされていない場合にのみデータベースに接続します。
ただし、クライアントからのすべてのリクエストでphpスクリプトファイルがサーバーに再ロードされるため、接続オブジェクトは常にnullです。したがって、データベースにアクセスする必要があるすべてのリクエストで、接続を初期化する必要があります。

この問題を回避するために使用できる設計パターンまたは手法はありますか?

4

1 に答える 1

2

永続的なデータベース接続から:

SQL サーバーへのリンクを作成するためのオーバーヘッドが高い場合は、永続的な接続が適しています。このオーバーヘッドが本当に高いかどうかは、多くの要因によって異なります。たとえば、データベースの種類、Web サーバーと同じコンピューター上にあるかどうか、SQL サーバーが置かれているマシンの負荷などです。要するに、接続のオーバーヘッドが高い場合、永続的な接続がかなり役立つということです。これにより、子プロセスは、SQL サーバーへの接続が必要なページを処理するたびにではなく、存続期間全体で 1 回だけ接続するようになります。これは、永続的な接続を開いたすべての子に対して、サーバーへの独自の永続的な接続が開かれることを意味します。例えば、

mysql_pconnectのドキュメント ページは次のとおりです。

于 2013-03-05T11:23:56.233 に答える