PHP ページに複数のクエリ ステートメントがあるため、ページを開くのが非常に遅くなります。どうすればよいですか? 以下のコードを簡単に説明します。まず、部門テーブルから部門レコードをクエリし、次に部門 ID に基づいてユーザー テーブル内の部門に対応するユーザーをクエリします。次に、ユーザー ID に基づいてログ テーブル内のユーザーに対応するログをクエリし、次にクエリを実行します。ログ ID に基づいた監査テーブルのリーダー。監査レコード...一度に 1 つのレイヤーを呼び出すようなものなので、ページを開くのに約 1 分かかります。
データテーブルのスキャン回数が多すぎることが原因と思われますが、解決方法がわかりません。
//クエリ部門 $sql_Depart="SELECT * FROM 部門 WHERE gid>0 AND gid<15 ORDER BY gid"; $query_Depart=$db- >query($sql_Depart); while($d=$db->fetch_array($query_Depart)){ ?>
&lt; table style = "width:100%"&gt; ?php &lt; table&gt; ?&gt;&lt; /str> /すべてのログをクエリ $sql="SELECT c1.*,c2.* FROM log c1 LEFT JOIN log_time c2 ON (c1.time_id=c2.tid) WHERE c2. year='".$year."' AND c1.userid='". $u['uid']."' AND c2.end_date<'".date("Y-m-d")."' ORDER BY c2.tid desc"; $query=$db->query($sql ); while($row=$db->fetch_array($query)){
次の SQL で高速化できるかどうかはわかりません(SQL が正しく実行可能であるという保証はありません)SELECT d.*,m.*,l.* FROM 部門 d m.flag left join (SELECT c1.*,c2.* FROM log c1 LEFT JOIN log_time c2 ON (c1.time_id=c2.tid) WHERE c2.year='".$year."' AND c2.end_date< ;'". date ("Y-m-d")."') l on l.userid = m.uid WHERE d.gid>0 AND d.gid