MySQL中的JOIN
MySQL 使用的join算法和oracle比较不同的地方就是,MySQL只有一种join算法,就是Nests loop join,他没有hash join和sort merge join。
Nests loop join算法实现的机制很简单,就是从驱动表中取数据作为循环基础数据,然后以这些数据作为查询条件到下一个表中查询,如此往复。这个实现的机制类似foreach函数的遍历。 因此带来的问题就是我们join的表越多,函数嵌套的层数就越多,算法复杂度指数级增长。
因此,设计数据库的使用要尽量全面的设计schema,如果实在不行要使用join语句,也尽量少的嵌套数据表。