mysql子查询和连接查询
首先是in和Exist的区别,in是对内查询的每个结果会去外层表里面进行循环,Exist则是对外层的记录去内层记录里面去遍历,所以如果外查询表比较大的话使用Exists,内查询的表比较大的话使用in。
一 子查询
1 MySQL从4.1版本开始支持子查询,使用子查询进行SELECT语句嵌套查询,可以一次完成很多逻辑上需要多个步骤才能完成的SQL操作
2 子查询虽然很灵活,但是执行效率并不高
3 执行子查询时,SQL语句中进行嵌套了SQL语句, 这就类似于循环了
4 例如有两张表, 我先查一张表,查一次, 然后拿这个结果去筛选查另一张表,查两次
二 连接查询(join)
1 可以使用连接查询(JOIN)代替子查询,连接查询需要建立临时表,,但因为联表操作不需要查询数据, 只需要在联表成新表之后查询一次, 因此其速度比子查询快
2 表关联是可以利用两个表的索引的,如果是用子查询,至少第二次查询是没有办法使用索引的
3 例如两张表, 我先把两张表拼在一起, 不查, 再查拼起来的新表, 查一次
总结:连接查询效率高于子查询!!!
seata和XA模式的区别
Nacos和Eureka的区别
标签:seata,SQL,XA,查询,mysql,连接 From: https://www.cnblogs.com/henuliulei/p/16591088.html