目次
返信内容:
ホームページ バックエンド開発 PHPチュートリアル php pconnect とシングルトン モードを使用して最高のパフォーマンスでデータベースに接続するにはどうすればよいですか?

php pconnect とシングルトン モードを使用して最高のパフォーマンスでデータベースに接続するにはどうすればよいですか?

Jun 17, 2016 am 08:32 AM
connect mysql php

次の 3 つの接続方法
1. mysql_connect() 関数を使用してシングルトン クラスを作成します
2. mysql_pconnect() を使用して長い接続を確立します
3. 作成されるデータベース接続クラスを作成します。インスタンス化中 短い接続、破棄時に閉じられます (mysql_close)
どのようなアプリケーション シナリオでデータベースに接続する場合、上記 3 つのうちのどれが最も高いパフォーマンスを発揮しますか?
(追記: PHP に接続プールを実装する必要がありますか)

返信内容:

= =ppc からですか... = =Baicai から返信がありました...転送します...


PHP レベルでは、どのようにコードを書いても同じです違いはありません。長い接続と通常のリンクの違いを強調しておきます。
永久リンクは、サーバーが接続を開いて全員がリンクを共有することを意味するものではありません。永続的な接続では、クライアントごとに接続が開かれます。200 人が訪問すると、200 の接続が存在します。実際、mysql_pconnect() 自体はあまり処理を行いません。唯一行うことは、PHP の実行後に mysql 接続を積極的に閉じないことです。
PHP が CGI モードで実行されている場合、pconnect と基本的には違いはありません。 connect.cgi メソッドは PHP アクセスごとにプロセスを開始するため、Apache モジュール モードで PHP を実行すると、Apache はプロセス プール (httpd) を使用するため、アクセスが完了するとプロセスが終了します。プロセスは終了後に使用されます。これにより、pconnect で開かれた mysql 接続リソースが解放されなくなります。これにより、次の接続リクエストがあるときに Apache が使用されます。 pconnect を使用しないと、PHP は DB に繰り返し接続する時間が短縮され、アクセス速度が速くなります。ただし、Apache の同時アクセス量が大きい場合は、pconnect を使用した方がわかりやすいでしょう。使用すると、以前の httpd プロセスによって占有されていた mysql 接続がブロックされ、mysql 接続の最大数が設定されている場合、mysql が接続の最大数に達した可能性があります。最大同時アクセス数を 500 に設定し、Apache の最大同時アクセス数を 2000 に設定すると、すべてのアクセスに Access db が必要となり、現在の 500 件の httpd リクエストが終了していない場合、後続の httpd プロセスの処理時間が比較的長くなります。 mysql に接続できません (mysql 接続の最大数に達しているため) 現在の 500 個の httpd プロセスのみが終了しているか、再利用すると mysql
に接続できます。これは他の httpd プロセスの mysql 接続を再利用しないため、多くの接続タイムアウトが発生します。 同時アクセスの量が多くない場合、pconnect を使用すると単純にアクセス速度が向上しますが、同時アクセスの量が増加した後は、pconnect を再度使用するかどうかはプログラマの選択によって異なります。
PHP の mysql への接続は実際には使用されません。コネクションプール、pconnectはApacheのプロセスプールを借りているのと同じなので、同時アクセス量が多い場合にはDBへのアクセス効率を上げることができません
実際のアプリケーションではmysql_pconnectを使用した方が速いです。毎回更新して新しいページをリクエストしますが、mysql_connect では、データベース接続が遅い場合は、更新するたびに再リクエストする必要があることがわかります。データベース接続が遅い場合、DB 操作はそれほど複雑ではなく、プログラムにデッドロックが発生しないという十分な自信があり、サーバーを制御できる場合は、上記の 4 つの条件のいずれか 2 つが満たされている必要があります。その後、pconnect を使用できます。
pconnect をスクリプトで閉じる必要はありません。mysql で有効期間を設定したり、定期的にスキャンして長期間休止していた接続を強制終了するシェルを作成したりできます。 一文要約: pconnect を使いこなすには、PHP スクリプトだけでなく、データベースやサーバーの設定も関係します。

元のアドレス: bbs.phpchina.com/thread
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

PHPの未来:適応と革新 PHPの未来:適応と革新 Apr 11, 2025 am 12:01 AM

PHPの将来は、新しいテクノロジーの傾向に適応し、革新的な機能を導入することで達成されます。1)クラウドコンピューティング、コンテナ化、マイクロサービスアーキテクチャに適応し、DockerとKubernetesをサポートします。 2)パフォーマンスとデータ処理の効率を改善するために、JITコンパイラと列挙タイプを導入します。 3)パフォーマンスを継続的に最適化し、ベストプラクティスを促進します。

phpmyadminを開く方法 phpmyadminを開く方法 Apr 10, 2025 pm 10:51 PM

次の手順でphpmyadminを開くことができます。1。ウェブサイトコントロールパネルにログインします。 2。phpmyadminアイコンを見つけてクリックします。 3。MySQL資格情報を入力します。 4.「ログイン」をクリックします。

PHP対Python:違いを理解します PHP対Python:違いを理解します Apr 11, 2025 am 12:15 AM

PHP and Python each have their own advantages, and the choice should be based on project requirements. 1.PHPは、シンプルな構文と高い実行効率を備えたWeb開発に適しています。 2。Pythonは、簡潔な構文とリッチライブラリを備えたデータサイエンスと機械学習に適しています。

MySQL:世界で最も人気のあるデータベースの紹介 MySQL:世界で最も人気のあるデータベースの紹介 Apr 12, 2025 am 12:18 AM

MySQLはオープンソースのリレーショナルデータベース管理システムであり、主にデータを迅速かつ確実に保存および取得するために使用されます。その実用的な原則には、クライアントリクエスト、クエリ解像度、クエリの実行、返品結果が含まれます。使用法の例には、テーブルの作成、データの挿入とクエリ、および参加操作などの高度な機能が含まれます。一般的なエラーには、SQL構文、データ型、およびアクセス許可、および最適化の提案には、インデックスの使用、最適化されたクエリ、およびテーブルの分割が含まれます。

なぜMySQLを使用するのですか?利点と利点 なぜMySQLを使用するのですか?利点と利点 Apr 12, 2025 am 12:17 AM

MySQLは、そのパフォーマンス、信頼性、使いやすさ、コミュニティサポートに選択されています。 1.MYSQLは、複数のデータ型と高度なクエリ操作をサポートし、効率的なデータストレージおよび検索機能を提供します。 2.クライアントサーバーアーキテクチャと複数のストレージエンジンを採用して、トランザクションとクエリの最適化をサポートします。 3.使いやすく、さまざまなオペレーティングシステムとプログラミング言語をサポートしています。 4.強力なコミュニティサポートを提供し、豊富なリソースとソリューションを提供します。

単一のスレッドレディスの使用方法 単一のスレッドレディスの使用方法 Apr 10, 2025 pm 07:12 PM

Redisは、単一のスレッドアーキテクチャを使用して、高性能、シンプルさ、一貫性を提供します。 I/Oマルチプレックス、イベントループ、ノンブロッキングI/O、共有メモリを使用して同時性を向上させますが、並行性の制限、単一の障害、および書き込み集約型のワークロードには適していません。

PHPの現在のステータス:Web開発動向を見てください PHPの現在のステータス:Web開発動向を見てください Apr 13, 2025 am 12:20 AM

PHPは、現代のWeb開発、特にコンテンツ管理とeコマースプラットフォームで依然として重要です。 1)PHPには、LaravelやSymfonyなどの豊富なエコシステムと強力なフレームワークサポートがあります。 2)パフォーマンスの最適化は、Opcacheとnginxを通じて達成できます。 3)PHP8.0は、パフォーマンスを改善するためにJITコンパイラを導入します。 4)クラウドネイティブアプリケーションは、DockerおよびKubernetesを介して展開され、柔軟性とスケーラビリティを向上させます。

PHPとPython:2つの一般的なプログラミング言語を比較します PHPとPython:2つの一般的なプログラミング言語を比較します Apr 14, 2025 am 12:13 AM

PHPとPythonにはそれぞれ独自の利点があり、プロジェクトの要件に従って選択します。 1.PHPは、特にWebサイトの迅速な開発とメンテナンスに適しています。 2。Pythonは、データサイエンス、機械学習、人工知能に適しており、簡潔な構文を備えており、初心者に適しています。

See all articles