gpt4 book ai didi

php - MySQL JOIN 与 PHP foreach 循环

转载 作者:可可西里 更新时间:2023-11-01 08:35:43 24 4
gpt4 key购买 nike

我在优化 MySQL 查询时遇到问题,但到目前为止,提取限制为 500 条记录的简单结果所花费的时间太长。

我的查询是这样的:

SELECT ou.*, gr.accepted, gr.value 
FROM offer_usermeta ou
LEFT JOIN gateway_requests AS gr ON ou.customer_id = gr.customer_id
WHERE ou.customer_id != ""
AND ou.created >= '2012-10-08 00:00:00'
AND ou.created <= '2012-10-08 23:59:59'
ORDER BY ou.created DESC LIMIT 500

此查询需要整整一分钟来遍历大约 40,000 条记录。我需要它根据客户 ID 提取网关响应(如果有的话)并且此查询的数据看起来正确,但我需要有关优化的提示。我正在考虑单独拉取数据并在必要时将它们放在一起,但我知道这可能会慢得多......

有什么建议吗? (如果有人也知道其中的花哨技巧,我正在使用 codeigniter)

最佳答案

如果到目前为止还没有,请在 created 列上添加索引。数据库将必须获取所有记录以执行 order by 并匹配 where 条件,无论您的 limit 是否只有 500 条记录.之后尝试

SELECT ou.*, gr.accepted, gr.value 
FROM offer_usermeta ou
LEFT JOIN gateway_requests AS gr ON ou.customer_id = gr.customer_id
WHERE ou.created between '2012-10-08 00:00:00' and '2012-10-08 23:59:59'
ORDER BY ou.created DESC
LIMIT 500

关于php - MySQL JOIN 与 PHP foreach 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12902362/

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