【发布时间】:2014-10-07 22:35:39
【问题描述】:
也许这个问题与this one 有关。 我有问题.. 我朋友说mysql对最大连接表有限制。 我明白了:
单个连接中可以引用的最大表数 是 61。这也适用于可 在视图的定义中引用。
这是真的吗? 然后,例如: 我有选择查询并加入 2 个表: left join a on b.id = a.b_id 那么,如何计算连接表的数量呢? 每桌?或每次加入? 那么,该查询标记为 1(每个连接)还是 2(每个表)? 61(最大限制)是每个表还是每个连接?
【问题讨论】:
-
我认为引用非常具体:“tables 的最大数量”;所以你数桌子。如果您在查询中使用视图,则还必须计算联接中的联接表……但是,老实说……您会在单个查询中联接 61 个表吗?
-
我已经编写了数百行的大量查询,但它们可能使用 25 个不同的表。顺便说一句,这在 Oracle 中是非常特殊的,因为此类查询通常难以维护,尤其难以测试和调试。 MySQL 在性能方面开始放弃大约十几个表。我不知道为什么有人会在 MySQL 的一个查询中使用 61 个(如果您认为限制是关于连接的,则为 62 个)表,我当然不想成为优化它的人。 :)
-
你知道它很容易测试吗? sqlfiddle.com/#!2/043dd/8 再添加一个连接,MySQL 就会蓬勃发展。