ホームページ  >  記事  >  バックエンド開発  >  PHP のクロスサーバー アクセスでは、データの取得が非常に遅くなります。

PHP のクロスサーバー アクセスでは、データの取得が非常に遅くなります。

WBOY
WBOYオリジナル
2016-06-23 13:34:161420ブラウズ

現在、コードはサーバー A にあり、データベースはサーバー B にあります。
サーバーAからサーバーBにアクセスすると、データの取得が非常に遅くなります。
サーバーAを使用してサーバーAにアクセスすると、速度は通常通りになります。
サーバー間のデータへのアクセスが非常に遅いという問題を解決する方法はありますか?


ディスカッションに返信 (解決策)

アクセス方法、コードを投稿

主な問題は、2 つのサーバー間のネットワーク チャネルです。

アクセス方法は、コードを投稿してください


 	$host = '远程服务器ID地址:3306'; 	$root = '用户名';        $pwd = '密码';		$con = @mysql_connect($host,$root,$pwd);	mysql_query("set names 'utf8'");	@mysql_select_db("XS", $con) or die(mysql_error());

こんな感じ。

主な問題は、2 つのサーバー間のネットワーク チャネルです。



ここはサーバーであり、コンピューター室ではありません。 2 つのリージョンにサーバーがあり、ループ クエリなど、データがサーバー A からサーバー B に送信されることがあります。データのすべてではなく、一部のみがクエリされることがあります。

これはクロスサーバー + クロスリージョンアクセスが原因でしょうか?

これはネットワーク チャネルの問題です。ネットワークが貧弱です。
条件が許せば、コンピューター室に置くのが最善です。

私の知る限り、それらはすべて 1 つのコンピューター室に押し込まれています

リモート サーバー ID に ping を実行して、遅延が大きいかどうかを確認してください

データベース マシンは逆方向分析を有効にしていますか?

これは 2 つのサーバー間のネットワーク通信の問題です。ドメイン名アドレスをリクエストしている場合は、解析時間を短縮するためにリクエスト IP を直接変更することをお勧めします

データベース間が離れすぎないことが最善です。本当に分離したい場合は、データベース キャッシュを使用することができます

明らかに MySQL データベース (Oracle、SQL Server) を使用しているため、zhezhongqingkuang は表示されません
現在の MySQL は分散アプリケーションをサポートしていないため

データベースにリモートでアクセスする場合、速度が遅くなるのは正常です。ネットワークノードが多いため、各ノードに遅延が発生します

PHP プログラムは長い接続方法を使用する必要があります

データベースミラーをローカルに作成するのが最善です

頻繁に読み取る場合は、次の左層キャッシュを読み取ることができますMemcache などのデータもいくつかの問題を解決できます

このようなデータ ミラーをローカルに作成するのが最善です。

データベース マシンで逆方向分析が有効になっていますか?


DNS 逆引き解決がオフになっている場合、他の問題が発生しますか?

3Q わかりました。 皆さん、ありがとうございました。

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