gpt4 book ai didi

mysql - 左外连接长时间执行

转载 作者:行者123 更新时间:2023-11-30 00:14:45 26 4
gpt4 key购买 nike

这是我的 mysql 查询:

SELECT SUBSTR(`GuestDailyRate`, 3, 8) as price, a.duration as nights, SUBSTR(b.DebtorEffect, 3 , 8) as debtor
FROM `ARR_2013` a OUTER LEFT JOIN `CMDextras` b
ON a.`GuestCode` = b.`GuestCode`
WHERE a.`GuestCode`=b.`GuestCode` AND b.DebtorEffect NOT LIKE '%(%' AND a.`GuestRateCategory` = 'BestAvaila' AND
YEAR(STR_TO_DATE(a.`ArrivalDate`,'%d-%M-%YY'))=2013

大约需要 5 分钟才能显示结果

能帮我解决一下吗

最佳答案

缺少架构和行数数量级,因此我只能给出一些通用提示:

  1. 确保您在 ARR_2013.GuestCode 和 CMDextras.GuestCode 上有索引。你没有使用外键吗?

  2. 您实际上每个月都使用单独的表格吗?如果您这样做,此架构将失控。

  3. WHERE 子句 (a.GuestCode=b.GuestCode) 已过时,它已被 JOIN 的 ON 子句覆盖。

  4. NOT LIKE '%(%':使用 LIKE 和 % 字符进行字符串扩展通常不是很快。精确字符串匹配查询比“LIKE”查询快得多。WHERE 正在消除包含 '(' 的行--> 也许可以用特殊的tinyint列来标记那些,比如你在写入行时分配的has_parentheses?

  5. STR_TO_DATE:为什么不使用日期时间列,这是一种二进制格式,可以更快地进行范围过滤。

关于mysql - 左外连接长时间执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23752268/

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