search
HomeBackend DevelopmentPHP Tutorial一个PHP页面中有多条查询语句,导致页面打开速度特别慢,怎么办

下面的代码有点乱,我简单解释一下吧。首先从部门表中查询出部门记录,然后根据部门ID查询出用户表中部门对应的用户,然后根据用户ID查询出日志表中用户对应的日志,然后再根据日志ID查询出审核表中领导的审核记录……,大概就是这样一层调用一层,导致打开页面需要1分钟左右。

我估计是扫描数据表的次数过多造成的,但是不知道该怎么解决?

    //查询部门
    $sql_depart="SELECT * FROM depart WHERE gid>0 AND gid     $query_depart=$db->query($sql_depart);
    while($d=$db->fetch_array($query_depart)){
?>
    


    
    
    

                  //查询人员
           
            $sql_user="SELECT * FROM members WHERE flag             $query_user=$db->query($sql_user);
            while($u=$db->fetch_array($query_user)){
        ?>        
    
       
        
            
        
        
一个PHP页面中有多条查询语句,导致页面打开速度特别慢,怎么办  

                         //查询所有日志
            $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             $query=$db->query($sql);
            while($row=$db->fetch_array($query)){
                
            ?>
                
                    
                        
                        
                    


回复讨论(解决方案)

都建了索引,结果一点作用都没有

如果??不需要???示,可以使用?存。

例如:
$data = getcache();  // ??存中?取
if($data==''){
   // ?取db?取??
  $data = '?取db?取';
  setcache($data); // ?入?存
}

echo $data;

看看用到索引没有,
在一个尽量减少不需要查询的内容,或者一次少查点

如果??不需要???示,可以使用?存。

例如:
$data = getcache();  // ??存中?取
if($data==''){
   // ?取db?取??
  $data = '?取db?取';
  setcache($data); // ?入?存
}

echo $data;



这是写入到文件中吗?
有没有完整的实例供参考一下?

explain你的sql语句看看索引使用情况


如果??不需要???示,可以使用?存。

例如:
$data = getcache();  // ??存中?取
if($data==''){
   // ?取db?取??
  $data = '?取db?取';
  setcache($data); // ?入?存
}

echo $data;



这是写入到文件中吗?
有没有完整的实例供参考一下?

是?在文件中的。

http://www.itstrike.cn/Question/PHP-technology-to-achieve-dynamic-cache-instance

楼主,可以把数据存到文件或者memcache当中去。


不过,你在循环中查询,这本身就不应该。你可以把两张表的数据一次全部查询完,再循环,或许比现在的速度要快些。

循环嵌套查询很可怕

个人愚见,你这嵌套循环查询效率很低,建议合并之

优化sql吧,尽量的一条sql能查出所有内容,然后下面循环展示就好了

关联:部门表关联用户表关联日志表关联审核表
排序:先按部门id排,再按用户id,再...(后面的关系没看透)
条件:就是你那些,整合一下
查询字段:只取用到的,比如部门id、部门名、用户id、用户名、...(没用到的字段坚决不取)
查询条数:这个你没有,建议写一个,大数据查询没有分页很可怕
这样只用一句语句就能得到数据了
然后就是遍历数据,由于排过序,所以不用怕会乱
第一个遍历部门,碰到部门id不同就另起一个table
每个部门再遍历用户,碰到用户不同就另起一个table
每个用户...

不知道下面这个SQL能不能让你的速度快些(不保证该SQL正确可行)

SELECT d.*,m.*,l.* FROM depart d 
left join members m on 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 WHERE d.gid>0 AND d.gid

写成一个语句了~

desc sql
关键字段创建索引

不知道下面这个SQL能不能让你的速度快些(不保证该SQL正确可行)

SELECT d.*,m.*,l.* FROM depart d 
left join members m on 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 WHERE d.gid>0 AND d.gid

我试了一下,查询效率是挺快的,不用等,但是在页面里该怎么调用?

我的需求是先显示部门,然后显示部门里的所有用户,以此类推。但是现在成了部门、用户和其他的都一起显示出来了。

关联:部门表关联用户表关联日志表关联审核表
排序:先按部门id排,再按用户id,再...(后面的关系没看透)
条件:就是你那些,整合一下
查询字段:只取用到的,比如部门id、部门名、用户id、用户名、...(没用到的字段坚决不取)
查询条数:这个你没有,建议写一个,大数据查询没有分页很可怕
这样只用一句语句就能得到数据了
然后就是遍历数据,由于排过序,所以不用怕会乱
第一个遍历部门,碰到部门id不同就另起一个table
每个部门再遍历用户,碰到用户不同就另起一个table
每个用户...



第一个遍历部门,碰到部门id不同就另起一个table
每个部门再遍历用户,碰到用户不同就另起一个table

id不同就另起一个table是什么意思?

                            
                        
Statement
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
pagefile.sys占用太大怎么办pagefile.sys占用太大怎么办Feb 20, 2024 am 09:01 AM

pagefile.sys占用太大怎么办在使用电脑的过程中,我们经常会遇到内存不足的情况。为了解决这个问题,操作系统会将部分内存中的数据转移到磁盘上的一个特殊文件中,这个文件就是pagefile.sys。但有时候,我们会发现pagefile.sys文件的大小很大,占用了太多的磁盘空间。那么,我们该如何解决这个问题呢?首先,我们需要明确pagefile.sys文

电视出现雪花怎么办(解决电视雪花问题的实用方法)电视出现雪花怎么办(解决电视雪花问题的实用方法)Jun 01, 2024 pm 09:44 PM

在我们日常生活中,电视作为重要的娱乐设备,经常会出现雪花现象,影响我们观看体验。本文将为大家介绍解决电视雪花问题的实用方法,帮助大家更好地享受电视节目。1.雪花问题的原因分析电视出现雪花一般是由于信号干扰、天线问题或电视信号源等原因引起的。2.检查天线连接是否松动首先检查电视机与天线之间的连接是否牢固,如有松动应重新插好。3.选择合适的天线确保天线的位置和方向正确,选择一款性能良好的天线可以改善信号接收质量。4.调整天线方向通过旋转或调整天线角度的方式,找到最佳的信号接收方向。5.使用室内天线信

解决宽带已连接却上不了网的问题(排除故障)解决宽带已连接却上不了网的问题(排除故障)May 05, 2024 pm 06:01 PM

互联网已经成为人们生活中不可或缺的一部分,在如今的信息时代。但是上不了网、有时候我们会遇到一些烦恼,然而,比如宽带已经连接好了。并采取相应的解决措施,我们需要逐步排查问题,以恢复网络连接,这种情况下。确认设备连接状态:手机等设备是否已正确认接到宽带网络、检查电脑,确保无线网络或者有线网络连接正常。2.重启宽带设备:以重置设备并重新建立连接、待数分钟后重新开启、尝试关闭宽带路由器或者调制解调器。3.检查宽带账号和密码:避免因为账号或密码错误导致无法上网,确保输入的宽带账号和密码正确无误。4.检查D

win7系统计算机运行软件不兼容怎么办win7系统计算机运行软件不兼容怎么办Jul 13, 2023 pm 06:49 PM

win7操作软件不兼容怎么办?当我们将一个程序从旧系统复制到win7进行安装时,就会出现无法安装的现象。这是win7操作软件不兼容的问题。那么win7操作软件不兼容怎么办呢?在这里,我将与您分享win7操作软件不兼容的解决方案。win7系统计算机运行软件不兼容怎么办:1.右击不兼容的软件或程序。2.单击弹出菜单列表中的属性选项。3.单击弹出的属性窗口中的兼容性选项卡。4.在兼容性选项卡下找到以兼容性模式运行该程序选项。5.检查以兼容模式运行该程序选项,如图所示!6.完成!注:有些软件这种方法无效

win11右下角图标点了没反应怎么办win11右下角图标点了没反应怎么办Jun 29, 2023 pm 01:54 PM

win11右下角图标点了没反应怎么办?电脑右下角可以显示目前正在运行任务的快捷图标,只要点击该图标,就可以继续运行任务,非常方便。但是有不少用户发现win11系统右下角的任务图标快捷键点击以后没反应,这是怎么一回事呢?今天小编就来给大家说明一下win11右下角快捷方式点击没用解决教程,有需要的用户们赶紧来看一下吧。win11右下角图标点了没反应怎么办1、首先我们按下键盘的“win”按钮,然后点击其中的“设置”。2、然后点击系统设置下方的“关于”。3、然后在设备规格下方找到蓝色字体的“高级系统设置

惠普打印机怎么复印惠普打印机怎么复印Jan 06, 2024 am 08:44 AM

惠普是一家知名的打印机品牌,他们推出了许多不同款式和型号的打印机,每个型号都有各自不同的功能和用途。但是,最基本的功能还是用来打印和复印文件。在这里,我们以惠普打印机v50157037-1型号为例,向大家介绍一下如何进行复印操作。首先,确保你的惠普打印机已经连接到电脑或者网络,并且已经安装好了驱动程序。接下来,打开你要复印的文件,并将其放置在打印机的扫描板上。然后,打开惠普打印机的控制面板,通常可以在打印机的操作面板或者通过电脑上的打印机设置找到。在控制面板上,你会看到一些按键或者菜单选项,用于

如何解决Windows 7网络图标消失问题如何解决Windows 7网络图标消失问题Dec 31, 2023 pm 08:11 PM

很多的小伙伴们都在问win7网络图标不见了怎么办?今天小编就为大家带来了win7电脑网络图标不见了解决办法一起来看看吧。win7网络图标不见了解决办法:1、鼠标右键点击桌面任务栏右侧的网络连接图标,选择“打开网络和共享中心”。2、进去后选左边的“更改适配器设置”,看看是否存在“无线网络连接”,图标上面如果有红叉,就双击无线网络连接图标,保持笔记本上的无线网卡开关是打开状态,然后网络连接图标应该就会出现了。3、如果以上方法仍然无法解决这个问题,按住“win”+“R”,调出运行命令框。4、’在输入框

win11安全中心怎么不见了怎么办win11安全中心怎么不见了怎么办Jun 29, 2023 pm 08:57 PM

win11安全中心怎么不见了怎么办?在win11系统中,安全中心是一个非常重要的部分,在这个部分中,用户们可以进行电脑安全性防护的工作,那么有些时候我们需要进行电脑安全管理工作时却发现win11的安全中心不见了怎么办?很多小伙伴不知道怎么详细操作,小编下面整理了win11安全中心消失解决步骤,如果你感兴趣的话,跟着小编一起往下看看吧!win11安全中心消失解决步骤1、按下win+x组合键,或者右键点击“开始”,点击“WindowsPowerShell(管理员)”;2、以管理员权限打开powers

See all articles

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Article

R.E.P.O. Energy Crystals Explained and What They Do (Yellow Crystal)
2 weeks agoBy尊渡假赌尊渡假赌尊渡假赌
Repo: How To Revive Teammates
4 weeks agoBy尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: How To Get Giant Seeds
4 weeks agoBy尊渡假赌尊渡假赌尊渡假赌

Hot Tools

PhpStorm Mac version

PhpStorm Mac version

The latest (2018.2.1) professional PHP integrated development tool

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser is a secure browser environment for taking online exams securely. This software turns any computer into a secure workstation. It controls access to any utility and prevents students from using unauthorized resources.

SublimeText3 English version

SublimeText3 English version

Recommended: Win version, supports code prompts!

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)