暂无图片
mysql多表join为什么会选错驱动表
我来答
分享
czxin788
2023-11-10
mysql多表join为什么会选错驱动表

这是我在mysql 官网上的提问,但是没有解决问题。

https://bugs.mysql.com/bug.php?id=113035&thanks=4

我来答
添加附件
收藏
分享
问题补充
2条回答
默认
最新
张sir

我理解这个跟filtered机制有关系,你可以看下我这个文章,如果你建立一个(DataDate,EnterpriseID,PigFarmID) 应该可以正常选到了m0作为驱动表,或者收集表的直方图。

https://www.modb.pro/db/565859

暂无图片 评论
暂无图片 有用 0
打赏 0
机要员

在MySQL中使用多表JOIN时,选择驱动表(也称为连接表)是非常重要的。驱动表是用于发起连接的表,它决定了连接的顺序和方式。如果选择错误的驱动表,可能会导致查询结果不正确或者性能问题。

选择错误的驱动表通常是由于以下原因引起的:

  1. 不确定连接顺序:在多表JOIN中,连接的顺序很重要。如果连接顺序不正确,可能会导致查询结果不正确。因此,在选择驱动表时,需要确定正确的连接顺序。
  2. 连接条件不准确:多表JOIN是根据连接条件来将表中的行匹配起来的。如果选择的连接条件不准确,可能会导致查询结果不正确。因此,在选择驱动表时,需要仔细考虑连接条件是否准确。
  3. 驱动表选择不当:有时候,不同的表可能有不同的连接条件和关系。如果选择了一个不适合作为驱动表的表,可能会导致查询结果不正确或者性能问题。因此,在选择驱动表时,需要考虑表的特性和连接条件,选择最适合作为驱动表的表。
  4. 忽略连接条件:有时候,在多表JOIN中会忽略一些连接条件,导致查询结果不正确。例如,在连接两个表时,只考虑了一个共同的列,而忽略了其他连接条件。因此,在选择驱动表时,需要仔细考虑所有的连接条件,并确保它们都被正确地考虑进去。

为了避免选择错误的驱动表,可以采取以下措施:

  1. 确定正确的连接顺序:在多表JOIN中,确定正确的连接顺序是非常重要的。可以通过仔细分析查询语句和表的之间的关系来确定连接顺序。
  2. 仔细考虑连接条件:在选择驱动表时,需要仔细考虑连接条件是否准确。可以通过检查连接条件的可行性和正确性来确定合适的驱动表。
  3. 选择适合的驱动表:在选择驱动表时,需要考虑表的特性和连接条件,选择最适合作为驱动表的表。可以通过分析表的索引、数据量和关系来选择合适的驱动表。
  4. 考虑查询性能:在选择驱动表时,需要考虑查询的性能。可以通过评估不同查询方案的执行计划和性能来选择最优的查询方案。
暂无图片 评论
暂无图片 有用 0
打赏 0
回答交流
Markdown


请输入正文
提交
相关推荐
mysql字符串如何删除字符串的最后一个特定字符?
回答 1
只能说给你个方向。用substr。selectsubstr(字段,1,n1)fromtn是字段长。等于最右边不显示。
请问mariadb有没有类似mysql connection_control.so的插件啊,管理登录失败处理的?
回答 3
据我所知,是没有的,如果有,请踹我两jio
如何在不重启MYSQL情况下,让MYSQL 释放共享内存呢?
回答 4
这个好像没辙,只能重启解决,另外如果你的服务器内存比较小,bufferpool不要设置太大,50%的os内存就可以。
mysql支持动态对象吗?
回答 2
已采纳
什么是动态对象?mysql存储过程支持动态sqlsetsql(预处理的sql语句,可以是用concat拼接的语句)set@sqlsqlPREPAREstmtnameFROM@sql;EXECUTEst
有没有关于mysql json的资料?官网的比较难理解
回答 1
已采纳
https://www.modb.pro/db/1692011734424961024
mysql如何定时备份数据库备份
回答 4
已采纳
您可以使用以下方法之一来定时备份MySQL数据库:使用mysqldump命令备份数据。在MySQL中提供了命令行导出数据库数据以及文件的一种方便的工具mysqldump,我们可以通过命令行直接实现数据
MySQL的redo机制跟Oracle一样吗?
回答 2
在MySQL中,事务结束(commit或rollback)并不会直接触发检查点。检查点(Checkpoint)是数据库系统中的一个机制,主要用于减少恢复时间,通过将内存中的修改过的页(脏页)刷新(写)
mysql只有数据文件如何恢复
回答 1
mysql5.7采用mysqlfrm抽取.frm表结构,重新关联ibd文件mysql8可以用ibd2sql获取ibd中的表结构,再重新关联ibd文件,比较麻烦,做好备份更保准
寻寻觅觅,冷冷清清,凄凄惨惨戚戚
回答 5
已采纳
声声慢
MySQL什么情况下应不建或少建索引
回答 4
已采纳
1、如果表数据量太少可以不建索引,有时候全表扫描可能比索引快。2、对于DML操作很频繁的表不建议,前提是保证查询性能的情况下。3、表数据重复且分布平均的表字段,比如表记录10万行,取值只有男或者女。4