MySQL中的JOIN

MySQL 使用的join算法和oracle比较不同的地方就是,MySQL只有一种join算法,就是Nests loop join,他没有hash join和sort merge join。

Nests loop join算法实现的机制很简单,就是从驱动表中取数据作为循环基础数据,然后以这些数据作为查询条件到下一个表中查询,如此往复。这个实现的机制类似foreach函数的遍历。 因此带来的问题就是我们join的表越多,函数嵌套的层数就越多,算法复杂度指数级增长。

因此,设计数据库的使用要尽量全面的设计schema,如果实在不行要使用join语句,也尽量少的嵌套数据表。

posted @ 2011-08-12 14:31  chainsaw  阅读(236)  评论(0编辑  收藏  举报