gpt4 book ai didi

php - 避免创建临时表/制作一个 "local left join"PHP MySQL

转载 作者:行者123 更新时间:2023-11-30 22:24:19 24 4
gpt4 key购买 nike

我有这 3 个查询,我必须进行很多次(给定月份的每一天一次)。做这件事需要很多时间。

$sqldia = "CREATE TEMPORARY TABLE today AS (SELECT * FROM booking WHERE day = ".$weekday.")";
$sqldia2 = "CREATE TEMPORARY TABLE taken AS (SELECT * FROM b_users WHERE date = '".$date."')";
$sqldia3 = "SELECT A.from, A.to FROM today A LEFT JOIN turnostomados B ON A.from = B.to WHERE B.confirmed IS NULL";

查询没问题,代码按预期工作,但速度非常慢。这需要是一个快速查询并且不会消耗太多资源,因为它可以在短时间内使用很多次。

我该如何改进它?有什么方法可以在 PHP 中创建“本地左连接”吗?

最佳答案

首先,您不需要临时表(尤其是第二个,因为它根本没有被使用):

SELECT
A.from, A.to
FROM booking as A
LEFT JOIN
turnostomados as B
ON (A.from = B.to)
WHERE A.day = ".$weekday."
AND B.confirmed IS NULL

然后,运行 explain extended找出执行计划并为这两个表添加适当的索引

可能您需要预订索引(天,从,到)

关于php - 避免创建临时表/制作一个 "local left join"PHP MySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35734780/

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