1、我们现在查询角色与角色的权限的数据。select * from role r left join role_action ra on r.rid=ra.rid;
2、现在有一个问题,有了主外键以后,索引应该是建立在左边还是右边上,加载哪些字段上。下面使用explain分析一下sql的执行计划。explain select * from rol髫潋啜缅e r left join role_action ra on r.rid=ra.rid;
3、现在是type有all,现在有左连接,现在在右边上添加索引优化。create index rid on role_action(rid);
4、添加索引之后重新执行sql执行计划,查看mysql的执行效果。
5、现在可以看到type变为了热风,rows也变成了优化比较明显,这是左连接的特性决定的,left join条件用于确定如何从右边搜索行,左边一定都有,
6、如果是右边连接,我们的索引优化就要建立在左边上。