fetch_array($query)) { $arrtmp['コンテンツ']= $row['コンテンツ]; 。 。 。 。 $arr["/> fetch_array($query)) { $arrtmp['コンテンツ']= $row['コンテンツ]; 。 。 。 。 $arr[">

ホームページ  >  記事  >  バックエンド開発  >  PHP 配列の経験が豊富な方は、ぜひご覧ください [問題]

PHP 配列の経験が豊富な方は、ぜひご覧ください [問題]

WBOY
WBOYオリジナル
2016-06-13 13:18:24819ブラウズ

PHP 配列に詳しい方は、ぜひご覧ください。 [問題]

PHP コード
<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

-->$arr= array();
$query = $db->query("SQL语句");
while($row = $db->fetch_array($query)) {
$arrtmp['content']= $row['content ];
。。。。
$arr[] = $arrtmp;
}


は配列を使用して、タイトル、概要、クエリされたデータを保存します。

現在発生している問題は、mysql データベースがローカルに接続されており、テスト速度が非常に速いのですが、skip-name-resolve を追加すると非常に遅いです。効果はなく、削除できます。
この問題は数日間解決されず、非常に混乱しています。助けてください。

-----解決策---------
mysql データベース接続ローカル、テスト速度

大規模ポイント RAD データベース用のソリューション

その他のソリューション
1. データベース データをローカルに同期するようにデータベースを設定します
2. データをキャッシュします
3. データベースと同じコンピューター室にローカルサーバーをホストします。
------解決策---------
話し合う

さらに、mysql がリモート接続するサーバーとプログラムが配置されているサーバー間のネットワーク速度は非常に高速です。

------解決策----------------------
もちろん、ホストとデータベースは同じサーバー サーバーでは速度が遅いはずですが、上記のコードには問題がありません。他のコードがない限り。
------解決策----------------------
つまり、データが大きすぎるため、送信ができなくなります。速度が遅いので、出力圧縮結果を確認することを検討してください。ただし、私は圧縮データを処理したことがないので、他の人が経験があるかどうかを確認してみます。



問題の核心は $arrtmp['content']= $row['content ];
の保存であることについて議論します。ビッグデータであり、速度は依然として非常に速いですが、これらのデータは必要です
ビッグデータを配列に保存するための最適化があるかどうか尋ねたいのですが、なぜリモートの mysql 接続は非常に遅いのに、ローカル接続は遅いのですか。とても速いですか?

------解決策---------
mysql_query で取得した結果セットは mysql にキャッシュされます。
側の mysql_fetch_array は、mysql にキャッシュされたレコードを毎回読み取ります

そのため、それを読み取るたびにリモート データ送信が行われ、当然のことながら非常に遅くなります

mysqli には、この関数はクエリ結果セットを一度に取得してローカルにキャッシュできます
しかし、関数名は思い出せません (mysqli を使用していないため) 2 か月前にここで議論されました

pdo。 fetchall メソッドを提供すると、結果セットを一度に配列に変換できます
mysqli にも提供されているようです

データベース クラスが mysql 関数に基づいていない限り、常に方法がありますリモート読み取りが遅いという問題を解決するには

------解決策---------
現在は元の php mysql 関数を使用しないでください
mysqli か pdo に変更します
特に pdo が使いやすいです
------解決策---------
レコードの読み取り時間が 50 ミリ秒であると仮定します
50 レコードは 50 * 50 = 2500 ミリ秒 = 2.5 秒です

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