gpt4 book ai didi

mysql 解释和内部连接至少对我来说没有按预期工作

转载 作者:行者123 更新时间:2023-11-29 13:52:58 25 4
gpt4 key购买 nike

这让我发疯,我非常努力地尝试与 mysql 上的 3 个表进行连接,我想要的是,选择用户订阅的所有订阅者,为此,我得到了这个表

user(id, nombre)
suscriptor(id, nombre)
suscripcion(id, userid, suscriptorid)

我使用的查询是这个:

select u.nombre, sr.nombre, s.suscriptorid from user u
inner join suscripcion s on s.userid = u.id
inner join suscriptor sr on sr.id = s.suscriptorid
where u.id = 1;

它工作正常,但是当我使用解释来检查查询时,当只有一个结果时,我的意思是,当 id = 1 的用户仅订阅一个标量时,一切对我来说都很好,因为扫描的总行数是1 * 1 * 1。问题是当用户订阅了多个订阅者时,导致它显示:

表 u(user) 中行为 1,类型为 const
行为 1,类型为表 s(suscripcion) 中的 ref
行数为 5(即总行数),类型全部在表 sr(下标)中

我尝试过这些类型的索引组合:

  • 在表中: 索引 UI(userid) 和 索引 SI(suscriptorid)

似乎只使用其中一个索引,并不断扫描表下标中的所有结果

  • 我什至尝试过使用复合索引:index USI(userid, suscriptorid),但再次忽略第二个索引并扫描表标标中的所有行。

提前致谢。

最佳答案

如果只有 5 行,查询规划器将不会使用索引,因为读取所有 5 行比使用索引更快。尝试用几百行进行测试。您还可以suggest index to see if it's eligible at all

关于mysql 解释和内部连接至少对我来说没有按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16389548/

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