select * from rbac_user r,user_log u where r.usr_id = u.usr_id;
select * from rbac_user r inner join user_log u on r.usr_id = u.usr_id;
select * from rbac_user r left join user_log u on r.usr_id = u.usr_id;
这三种查询的性能应该是依次增高的吧。请大手们说说底层的原理,如何查询的。
还有这三个sql我在测试的时候,他们时快时慢为什么?慢的意思就是执行后半天不反应,直接mysql-Front卡死

解决方案 »

  1.   

    1,2 相同,你唯一需要知道的是SQL语句提交后数据库系统到底会做些什么动作,其中一下动作就是语法解析3 select * from rbac_user r left join user_log u on r.usr_id = u.usr_id;
    这个与前两个上语义上不同,这个是返回 rbac_user  表中所有记录。 仅仅当 rbac_user 中所有记录都对应有 user_log 表中的记录时,则返回结果等同于1,2
    此时的效率,则看 rbac_user ,user_log  中的记录数量和主键索引而决定。理论上肯定不会高于 1,2
      

  2.   

    那么1,2是如何查询的。像3应该是先从rbac_user中读取一条记录根据on条件到user_log表中去匹配有则返回,无则null。左右链接都是根据前表的数据为主显示结果集。就是不明白1,2是如何查询的。