据说mysql查询的时候使用limit1可以提高效率
如题:从网上好多人做的实验来看
SELECT * FROM t_user WHERE email=? LIMIT 1; 比
SELECT * FROM t_user WHERE id=?; 确实快了不少,解释的理由是limit 1找到一条记录后就不会向下扫描了,所以效率高。
然后我的疑惑是——按照mysql的语句执行顺序,limit是在where跟select之后执行的,是不是说执行完select之后才执行limit,那么在执行完select的时候,不是已经产生了满足email条件的全量的虚拟表了么,然后才从这个虚拟表里面取了一条记录出来,感觉这样并不会快啊~~
求各位大大开导开导,没想明白