mysql中多表关联删除,怎样做?谢谢...

如题所述

第1个回答  2019-07-19

1、现在我们以查询员工角色和权限为例:select * from member m left join member_role mr on m.mid=mr.mid left join role r on mr.rid=r.rid。

2、执行sql执行计划,查看mysql的sql执行结果。现在表进行了全表扫描了。

3、现在在所有的右表上建立一个索引:create index mr_index on member_role(mid)。

4、建立好索引之后重新执行sql执行计划。 explain select * from member m left join member_role mr on m.mid=mr.mid left join role r on mr.rid=r.rid。

5、因此索引最好设置在需要进场查询的字段中。

6、尽可能减少join语句中循环的总次数,永远用小结果集驱动大的结果集。当无法保证被驱动表的join条件字段被索引且内存资源充足的前提下,不要吝啬JoinBuffer的设置。

相似回答