MariaDB中表连接的最大数量是多少?

6

MariaDB 10中的表连接数量是否仅限于61个,就像MySQL一样,还是另外一个数字?

(我在MariaDB文档或谷歌搜索中找不到答案。)


为什么这很重要呢?在一个正确规范化的模式中,你不太可能需要那么多的JOIN! - Strawberry
取决于复杂性。我的上一个(700万英镑)项目在这个问题上遇到了很大的困难,不得不使用很多解决方法。 - Steve Chambers
1
那个查询已经运行完了吗? - Strawberry
1
如果使用外键,连接操作并不会导致速度变慢。例如,请参见https://dev59.com/vHVC5IYBdhLWcg3w0EsD。 - Steve Chambers
2
如果您在Doctrine中使用多表继承,这个限制很容易被触及。是的,这通常是一个糟糕的设计决策的结果,但您可能会意识到这一点太晚以至于无法更改。 - VaclavSir
不一定是糟糕的设计 - 在包含大量实体的任何关系数据模型中,都有可能达到限制,因为 JPA 2.0 默认使用急加载(@ManyToOne映射)。我所在的项目最终将所有的 @ManyToOne 都改为了懒加载。 - Steve Chambers
1个回答

6

MariaDB最多可以在一个查询中连接61张表。

以下是查询语句:

CREATE TABLE t (i INT(10) NOT NULL);
select *
from t a01 join t a02 join t a03 join t a04 join t a05 join t a06 join t a07 join t a08 join t a09 join t a10
join t a11 join t a12 join t a13 join t a14 join t a15 join t a16 join t a17 join t a18 join t a19 join t a20
join t a21 join t a22 join t a23 join t a24 join t a25 join t a26 join t a27 join t a28 join t a29 join t a30
join t a31 join t a32 join t a33 join t a34 join t a35 join t a36 join t a37 join t a38 join t a39 join t a40
join t a41 join t a42 join t a43 join t a44 join t a45 join t a46 join t a47 join t a48 join t a49 join t a50
join t a51 join t a52 join t a53 join t a54 join t a55 join t a56 join t a57 join t a58 join t a59 join t a60
join t a61 join t a62;

会产生错误 ERROR 1116 (HY000): Too many tables; MariaDB can only use 61 tables in a join


好的回答,感谢您测试。出于兴趣(和为了纪念),您使用的是哪个版本的MariaDB? - Steve Chambers
我使用的是MariaDB 10.0.11。 - Julian Ladisch

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接