- 左外连接
连接字段加索引,且类型要相同。
- 内连接
对于内连接来说,查询优化器可以决定谁作为驱动表,谁作为被驱动表。
如果表连接条件中只有一个字段有索引,那么有索引字段所在的表会作为被驱动表。
如果表连接条件中两个字段都有索引,那么会选择小表作为驱动表。小表驱动大表。
小结:
- 保证被驱动表的JOIN字段已经创建了索引需
- 要JOIN 的字段,数据类型保持绝对一致。
- LEFT JOIN 时,选择小表作为驱动表,大表作为被驱动表。减少外层循环的次数。
- INNER JOIN 时,MySQL会自动将小结果集的表选为驱动表。选择相信MySQL优化策略。
- 能够直接多表关联的尽量直接关联,不用子查询。(减少查询的趟数)
- 不建议使用子查询,建议将子查询SQL拆开结合程序多次查询,或使用 JOIN 来代替子查询。
- 衍生表建不了索引
