gpt4 book ai didi

mysql - 优化MySQL自连接查询

转载 作者:行者123 更新时间:2023-11-29 08:14:16 28 4
gpt4 key购买 nike

我需要从表中选择满足特定条件的行对。
这是一个 SQL fiddle ,演示了我想要的内容:

http://sqlfiddle.com/#!2/4fc2f/16/0

当表很小时,这很有效 - 但问题是我的生产表可能有数百万行和特定日期的数千行。现在针对特定日期运行查询需要 14-15 秒。我该如何改进它?

MySQL 5.5

最佳答案

您缺少索引。尝试使用 EXPLAIN 来分析您的查询,它会对您有很大帮助。

解决办法很简单,就是: http://sqlfiddle.com/#!2/56deb/1/0

您需要添加一个索引,其中包含 where 语句中使用的列,以便使用它们:

KEY `night_of_2` (`night_of`,`student_id`,`check_class`)

此外,您还需要在连接上强制使用索引,因为您要将表连接到其自身:

JOIN checks checks2

强制索引 ( night_of_2 ) ON (checks1.night_of = check2.night_of )

(如果有更好的方法我想知道):)

问候,

关于mysql - 优化MySQL自连接查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20927356/

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