有两张表,t1和t2t1:有一个uid,还有n列,共有记录m条
t2:有一个uid,还有n列,共有记录m条那么我在执行这句的时候
select ... from t1,t2 where t1.uid = t2.uid
是不是数据库要先做两个表的乘积,然后再做选择?
也就是先生成了个m*m的表,然后再从这个m*m大小的表里做1.uid=2.uid?
也就是说速度要非线性的变慢?
t2:有一个uid,还有n列,共有记录m条那么我在执行这句的时候
select ... from t1,t2 where t1.uid = t2.uid
是不是数据库要先做两个表的乘积,然后再做选择?
也就是先生成了个m*m的表,然后再从这个m*m大小的表里做1.uid=2.uid?
也就是说速度要非线性的变慢?
在uid上有索引得情况下不会慢
建议先看概论中的优化部分,然后再看手册中的优化部分。
t2:有一个uid,还有n列,共有记录m条select ... from t1,t2 where t1.uid = t2.uidmysql支持嵌套循环的方式
首先取t1表中的一行数据到t2中进行比对,循环遍历t1表中所有的数据,知道结束!优化只需要在 t2.uid上建索引即可!