gpt4 book ai didi

php - JS、PHP、MySQL获取大数据

转载 作者:行者123 更新时间:2023-11-29 03:43:37 25 4
gpt4 key购买 nike

我正在使用 Ajax 将查询发送到 PHP 服务器,然后运行 ​​SQL 查询以获取数据。因为查询涉及到三张表(两个大的),所以JOIN这三张表很慢。

然后我将 SQL 查询拆分为三个查询。它提高了效率(对于小数据集)。但对于大型数据集,由于 PHP 程序将三个查询一个一个地运行,并在每个查询之后处理结果,因此会有 30 秒的超时(默认)。我不想删除此默认设置。

为了避免超时,我也在考虑把这三个query都跑一遍,把结果返回给JS,让client端去处理。

还有其他方法吗?

添加

基本上,我想要三个输出,titleextviewsallviews,对于每个项目,WHERE extviews>somevaluetitle 来自一个小表,extviewsallviews 来自两个不同的大表。我把所有的字段都索引了,但是加入两个大表还是需要很长时间。

所以我首先聚合一个表以获得每个项目的 extviews,以及项目 id 的列表。将结果组织成一个数组,用于 JSON 输出到 JS。然后使用 id 列表,我得到每个项目的 title,并聚合另一个表以获得 allviews。然后我用新结果更新数组。

最佳答案

除非你的 mysql 服务器真的重载,否则使用连接通常会更快。我猜你已经在你的表上定义了索引? (用于连接条件和 where 子句中的字段)在客户端进行处理也可能是个问题,因为您必须发送大量数据才能进行连接...

编辑:如果所有“简单”优化都完成了,那么你有 2 个选择......你刚才描述的那个(如果可能的话,在客户端大小上做 - 你发送给客户端的 json 数组的大小(以字节为单位)是多少?)您的另一种选择是在后台进行处理(通过 cron)并以某种方式缓存结果。

关于php - JS、PHP、MySQL获取大数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9795588/

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