Php 我的页面需要3-5分钟才能加载,我如何才能减少它?

Php 我的页面需要3-5分钟才能加载,我如何才能减少它?,php,html,laravel,runtime,blade,Php,Html,Laravel,Runtime,Blade,我目前正在做这个项目,主页需要将近5分钟的加载时间。我一直在尝试减少运行时,但我对编程还是新手,我对pthreads不太熟悉,但有人告诉我pthreads不能使用它。有人能帮我找出如何更快地运行这段代码并阻止Chrome杀掉处理器吗 我也知道我的PHP代码有点凌乱,本来打算稍后清理它,但是PHP代码的一小部分在整个页面的第0、270、420、560行左右 谢谢你抽出时间 下面是一段代码,但您可以在下面链接的pastebin中找到完整的代码: <?php $k = 0; ?> <

我目前正在做这个项目,主页需要将近5分钟的加载时间。我一直在尝试减少运行时,但我对编程还是新手,我对pthreads不太熟悉,但有人告诉我pthreads不能使用它。有人能帮我找出如何更快地运行这段代码并阻止Chrome杀掉处理器吗

我也知道我的PHP代码有点凌乱,本来打算稍后清理它,但是PHP代码的一小部分在整个页面的第0、270、420、560行左右

谢谢你抽出时间

下面是一段代码,但您可以在下面链接的pastebin中找到完整的代码:

<?php $k = 0; ?>

<tr>
    @foreach($mondays as $monday)
    <?php $shift_worker_id = DB::table('schedule')->where('id', $monday->id)->value('shift_worker_id') ?>
    <?php $zone_id = DB::table('schedule')->where('id', $monday->id)->value('zone_id') ?>
    <?php $zone = DB::table('zone')->where('id', $zone_id)->value('name') ?>
    <?php $worker_id = DB::table('shift_worker')->where('id', $shift_worker_id)->value('worker_id') ?>
    <?php $shift_id = DB::table('shift_worker')->where('id', $shift_worker_id)->value('shift_id') ?>
    <?php $time = DB::table('shift')->where('id', $shift_id)->value('time') ?>
    <?php $type = DB::table('shift')->where('id', $shift_id)->value('type') ?>
    <?php $name = DB::table('worker')->where('id', $worker_id)->value('name') ?>
    @if($type == "Graveyard")
        <th style="font-size:11px" colspan="1">{{$name}}</th>
        <th style="font-size:7px" colspan="1">{{$time}}</th>
        <th style="font-size:11px" colspan="1">{{$zone}}</th>
        <th colspan="1"></th>
        <th colspan="1"></th>
        <th colspan="1"></th>
        <?php $k++; ?>
    @endif
    @if($k % 4 == 0)
        </tr>
        <tr>
    @endif
    @endforeach
</tr>

@foreach($星期一为$星期一)
@如果($type==“墓地”)
{{$name}
{{$time}
{{$zone}}
@恩迪夫
@如果($k%4==0)
@恩迪夫
@endforeach

这肯定是因为N+1问题。了解如何使用即时加载

您在循环中为数据库创建了大量冗余查询,可能是数千个而不是6个

雄辩可以在查询父模型时“急切加载”关系。急切加载缓解了N+1查询问题


这肯定是因为N+1问题。了解如何使用即时加载

您在循环中为数据库创建了大量冗余查询,可能是数千个而不是6个

雄辩可以在查询父模型时“急切加载”关系。急切加载缓解了N+1查询问题


你在一个页面加载上运行了多少个DB查询?使用LaaVIEW Debug吧,看看在页面加载上运行了多少查询,看看是否可以减少MUTHOY,亲爱的,似乎有将近8000个查询,这不是正常的。@ DhavalChhedaI会认为这有点“太多”了。在您发布的代码中,您有8次x查询,因此如果您有1000个星期一,您将生成8000个查询。无论您在做什么,您都需要找到一种组合查询的方法,您可以连接所需的表并查询星期一ID数组,而不是在循环的每个迭代中获取它们,etc@Quazi您应该学习如何快速加载和如何处理有说服力的集合。对于这个代码,查询的正常数是6。在一个页面加载中运行多少个DB查询?使用LARAVER Debug GAR,并查看在页面加载上运行多少查询,看看是否可以减少MUTHOY,亲爱的,似乎有将近8000个查询,这不是正常的。@ DhavalChhedaI会认为这有点“太多”了。在您发布的代码中,您有8次x查询,因此如果您有1000个星期一,您将生成8000个查询。无论您在做什么,您都需要找到一种组合查询的方法,您可以连接所需的表并查询星期一ID数组,而不是在循环的每个迭代中获取它们,etc@Quazi您应该学习如何快速加载和如何处理有说服力的集合。对于这段代码,正常的查询次数是6次。因此,我宁愿一次完成所有查询,而不是如何查询调用?就像用一次就可以完成的事情替换这8行一样?@Quazi是的,你需要创建有说服力的关系,然后用一个有说服力的查询获取所有数据,这将只创建6个数据库查询。如果你从未使用过雄辩,你应该从官方文件开始。所以我宁愿一次完成所有的工作,而不是询问电话的方式?就像用一次就可以完成的事情替换这8行一样?@Quazi是的,你需要创建有说服力的关系,然后用一个有说服力的查询获取所有数据,这将只创建6个数据库查询。如果你从未使用过雄辩,你应该从官方文件开始。