联接表总是创建那些表的笛卡尔积吗?
如果可以通过子查询和Join来解决问题,我应该选择哪个?
哪一个速度快且可节省内存?

所有问题都是紧密耦合的,所以请不要告诉打开另一个线程:(

MySQL 5

最佳答案

联接表总是创建那些表的笛卡尔积吗?


是的,但是过滤掉法线,查询优化器足够聪明,可以采用更有效的方法。无论如何,所有无条件的连接都是笛卡尔产品。


  如果可以通过子查询和Join来解决问题,我应该选择哪个?


在很大程度上取决于查询优化器和相关数据。如:尝试一下。 Prettym这是唯一的方法。


  哪一个速度快且可节省内存?


再次-试试看。

这些东西实际上不取决于所涉及的表大小和过滤条件。基本上,在大多数情况下,物化笛卡尔积是不好的编程(向上,忘记了拟合条件)或非常糟糕的查询计划。在大多数情况下,笛卡尔积永远不会实现,查询优化器将使用其他方法。

关于mysql - 表上的(SQL)联接总是创建这些表的笛卡尔积吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5631403/

10-08 22:05