Modoer リスト ページのパフォーマンス分析と最適化_PHP チュートリアル
ページhttp://www.modoer.org/beijing/item/list-8では、次の2つのSQLが実行されます $this->db->where('s.sid',explode(',', $sids), '');
SELECT s.sid,pid,catid,domain,name, avgsort,sort1,sort2,sort3,sort4,sort5,sort6,sort7,sort8,best,finer,pageviews,reviews,pictures,favorites,thumb,aid,map_lat,map_lng,c_tel,c_dz FROM modoer_subject s LEFT JOIN modoer_subject_shishang sf ON ( s.sid = sf.sid) WHERE が存在します(SELECT 1 FROM modoer_subjectatt st WHERE s.sid=st.sid AND attid=173) AND が存在します(SELECT 1 FROM modoer_subjectatt st WHERE s.sid=st.sid AND attid=4) ORDER BY 詳細な DESC LIMIT 0, 20
SELECT COUNT(*) FROM modoer_subject s WHERE 存在する(SELECT 1 FROM modoer_subjectatt st WHERE s.sid=st.sid AND attid=173) AND 存在する(SELECT 1 FROM modoer_subjectatt st WHERE s.sid=st.sid AND attid=4)
データ量が大きくない場合でも、データ量が多い場合はどうなるでしょうか。私のデータを例にとると、件名データ ボリュームと件名データ ボリュームはそれぞれ、図に示すように
SQL 実行結果になります。
データ ボリュームに対する SQL クエリを 1 回実行するだけで、44.16 秒かかりました。ウェブサイトが完全にダウンしていて開かない場合は、テクノロジーがテストされていない、または最適化されていないのではありませんか?複合文は使うのは楽しいですが、効果は非常に貧弱です
私が一時的に最適化した後、subject_class.php の次のコードを変更したところ、パフォーマンスが大幅に向上しました
if($atts) {
$ attlist = array_values($atts) ; $or = '';
$sql ='select GROUP_CONCAT(sid) sids from( O SELECT COUNT (SID) Count, Sid from (
Modoer_Subjectatt から SID、Attid を選択しますWhere ';
Foreach ($ Attlist as $ Attid) {
// $ this- & gt; where_exist("SELECT 1 FROM dbpre_subjectatt st WHERE s.sid=st.sid AND = $attid");
$ OR = 'OR';
}
$ SQL. = ') SID でグループ化
ここで、カウント ='
sids'];
//$where = ' s.sid in('.$sids.') ';
}else{
$where = '';
}
さらに蟥询数のある地方
if($atts) {
$attlist = array_values($atts);
$num = count($attlist) );
if($num> ;0){
$or = '';
$sql ='select count(*) as nums from(
) select count(sid) count from (
select sid,attid from modoer_subjectatt where ';
foreach($attlist as $attid) {
//$this->db ->where_exist("dbpre_subjectatt st WHERE s.sid=st.sid AND attid=$attid から 1 を選択" );
if($attid
l .= $or . ' attid='.$attid;
$or = ' or ';
}
$ sql .= ') as temp
sid でグループ化) as temp1
where count='.$num;
}
}
希望される友友変更可、也問題のある連絡システムqq 272164179

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

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

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

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

ホットトピック









さまざまな Java フレームワークのパフォーマンス比較: REST API リクエスト処理: Vert.x が最高で、リクエスト レートは SpringBoot の 2 倍、Dropwizard の 3 倍です。データベース クエリ: SpringBoot の HibernateORM は Vert.x や Dropwizard の ORM よりも優れています。キャッシュ操作: Vert.x の Hazelcast クライアントは、SpringBoot や Dropwizard のキャッシュ メカニズムよりも優れています。適切なフレームワーク: アプリケーションの要件に応じて選択します。Vert.x は高パフォーマンスの Web サービスに適しており、SpringBoot はデータ集約型のアプリケーションに適しており、Dropwizard はマイクロサービス アーキテクチャに適しています。

PHP の配列キー値の反転メソッドのパフォーマンスを比較すると、array_flip() 関数は、大規模な配列 (100 万要素以上) では for ループよりもパフォーマンスが良く、所要時間が短いことがわかります。キー値を手動で反転する for ループ方式は、比較的長い時間がかかります。

時間計算量は、入力のサイズに対するアルゴリズムの実行時間を測定します。 C++ プログラムの時間の複雑さを軽減するためのヒントには、適切なコンテナー (ベクター、リストなど) を選択して、データのストレージと管理を最適化することが含まれます。クイックソートなどの効率的なアルゴリズムを利用して計算時間を短縮します。複数の操作を排除して二重カウントを削減します。条件分岐を使用して、不必要な計算を回避します。二分探索などのより高速なアルゴリズムを使用して線形探索を最適化します。

C++ マルチスレッドのパフォーマンスを最適化するための効果的な手法には、リソースの競合を避けるためにスレッドの数を制限することが含まれます。競合を軽減するには、軽量のミューテックス ロックを使用します。ロックの範囲を最適化し、待ち時間を最小限に抑えます。ロックフリーのデータ構造を使用して同時実行性を向上させます。ビジー待機を回避し、イベントを通じてリソースの可用性をスレッドに通知します。

C++ で HTTP ストリーミングを実装するにはどうすればよいですか? Boost.Asio と asiohttps クライアント ライブラリを使用して、SSL ストリーム ソケットを作成します。サーバーに接続し、HTTP リクエストを送信します。 HTTP 応答ヘッダーを受信して出力します。 HTTP 応答本文を受信して出力します。

PHP では、配列からオブジェクトへの変換はパフォーマンスに影響を与え、主に配列のサイズ、複雑さ、オブジェクト クラスなどの要因によって影響を受けます。パフォーマンスを最適化するには、カスタム反復子の使用、不必要な変換の回避、配列のバッチ変換などの手法を検討してください。

ベンチマークによると、小規模で高性能なアプリケーションの場合、Quarkus (高速起動、低メモリ) または Micronaut (TechEmpower に優れた) が理想的な選択肢です。 SpringBoot は大規模なフルスタック アプリケーションに適していますが、起動時間とメモリ使用量が若干遅くなります。

高パフォーマンスのアプリケーションを開発する場合、C++ は、特にマイクロベンチマークで他の言語よりも優れたパフォーマンスを発揮します。マクロベンチマークでは、Java や C# などの他の言語の利便性と最適化メカニズムの方がパフォーマンスが優れている場合があります。実際のケースでは、C++ は画像処理、数値計算、ゲーム開発で優れたパフォーマンスを発揮し、メモリ管理とハードウェア アクセスを直接制御することで明らかなパフォーマンス上の利点をもたらします。
