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_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 の結果は一方的な平均消費時間です
通信は双方向です