ITPub博客

首页 > 数据库 > MySQL > MySQL为什么不要多表关联?

MySQL为什么不要多表关联?

原创 MySQL 作者:xuexiaogang 时间:2021-12-11 11:22:59 0 删除 编辑

自己原文公众号: https://mp.weixin.qq.com/s/NYEhQXgPA299dlyYNUmrOw

我个人是反对的,我觉得2个表关联是正常的,单表最好。如果特殊最多3个表关联,3个以上是不对的(性能不好,建议优化)。即使在Oracle上,不管MYSQL还是PostgesSQL。

      某个SQL执行了几分钟大致是这样的select * from 6个表关联 limit 70000,10000.

     最后Query_time: 255.707167  Lock_time: 0.002991 Rows_sent: 10000  Rows_examined: 8217255

        大家觉得不可能,最大的表才140万左右,怎么可能800万的扫描。

这个以前讲过,今天再次数据说话,重现一下。t1  t2  t3各100万。


 结果请看,有几个表就扫描了几倍。上面这个最终显示10条,但是扫描了300030 。就是100010X3

如果是10个表关联,那就是100010X10

    所以,千万要控制表的关联数量,这是根本。如果历史原因已经很多表了,那么where条件一定要控制住,大表不要全表。如果都控制不住,那就可能要出问题了。

     表设计把控难度相对大,最好一开始就介入,结合需求设计。而不是把以前的项目的表拿过来用,然后再改。这样需求和表就不在一个频道上了。


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/637517/viewspace-2847174/ ,如需转载,请注明出处,否则将追究法律责任。

下一篇: MySQL锁分析
请登录后发表评论 登录
全部评论
OracleACE/PostgreSQLACE/阿里云MVP/腾讯云TVP/墨天轮 MVP/TiDBMVA/数盟会华东区长老/OpenTenBase社区委和技术委委员/架构师技术同盟名人堂成员上海地区理事会成员/if社区联合发起人/《DBA实战手记》作者/公众号:四海内皆兄弟

注册时间:2013-07-01

  • 博文量
    422
  • 访问量
    953204