gpt4 book ai didi

php - MySql 查询需要很长时间 PHP

转载 作者:行者123 更新时间:2023-11-29 03:47:54 24 4
gpt4 key购买 nike

我在 Laravel 中有以下 PHP 代码正在执行 MySql 查询:

DB::statement(DB::raw("SET @rownum = 0"));
$sql = "@rownum := @rownum+1 AS rank, id, clanid, name, location, level, exp, warslost, warstied, warwinpercent, warswon, playercount, score";
$clan = Clans::orderBy('clanid', 'asc')
->selectRaw($sql)
->take(7000)
->get();

此查询需要很长时间才能执行。

我在排序所依据的列上有索引,对于其他查询也有许多其他列。

我该怎么办?

更新:

执行的查询:

SET @rownum = 0

select @rownum := @rownum+1 AS rank, id, clanid, name, location, level, exp, warslost, warstied, warwinpercent, warswon, playercount, score from `clans` order by `clanid` asc limit 7000

EXPLAIN EXTENDED 结果:

最佳答案

Shivam Paw 和我通过聊天来解决这个问题。事实证明,MySQL 查询本身还是很快的。但是,我们确定

print str_repeat('a', $size_of_mysql_result_set);

非常慢(大小约为 2.4M)。因此,问题要么出在网络 I/O(可能是托管服务提供商节流),要么出在 PHP 和 Nginx 之间的某些问题,以处理来自 PHP 的大量输出。

更新:

此时的一些选项:

  • 重新构建应用程序,使其不会一次获取 2+ MB。也许一开始就抓取您需要立即显示的内容,然后在后台抓取其余部分——或者更好的是,仅在用户实际需要时抓取它
  • 在 Nginx 中启用压缩 ( https://rtcamp.com/tutorials/nginx/enable-gzip/ )
  • 与您的托管服务提供商协商更好的带宽协议(protocol)或寻找其他提供商

关于php - MySql 查询需要很长时间 PHP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33743616/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com