您现在的位置是:课程教程文章
mysql使用关联查询的注意点
2023-12-14 20:51课程教程文章 人已围观
javaweb阶段/JavaEE/mysql数据库/JDBC/培训就业
javaweb阶段/JavaEE/mysql数据库/JDBC/培训就业...Web安全工程师之建站指南(渗透测试/白帽
Web安全工程师之建站指南(渗透测试/白帽注意:购买课程之后,请先加入学习群,获取配套资料 微信公众号:拼客学院...加工中心UG三编程工厂实战班
加工中心UG三编程工厂实战班注意,实际价格联系本人 现招网络培训学员和实体培班训学员,全日班和课余...mysql mysql入门 mysql入门到精通 mysql教程
mysql mysql入门 mysql入门到精通 mysql教程 资料获取方式: 为了方便大家,我们把资料集中化管理放在同一个课程里面 第...
1、确保ON和USING字句中的列上有索引。
在创建索引的时候就要考虑到关联的顺序。当表A和表B用列c关联的时候,如果优化器关联的顺序是A、B,那么就不需要在A表的对应列上创建索引。没有用到的索引会带来额外的负担,一般来说,除非有其他理由,只需要在关联顺序中的第二张表的相应列上创建索引。
2、确保任何的GROUP BY和ORDER BY中的表达式只涉及到一个表中的列,这样MySQL才有可能使用索引来优化。
实例
假设MySQL按照查询中的关联顺序A、B来进行关联操作,那么可以用下面的伪代码表示MySQL如何完成这个查询:
outer_iterator = SELECT A.xx,A.c FROM A WHERE A.xx IN (5,6); outer_row = outer_iterator.next; while(outer_row) { inner_iterator = SELECT B.yy FROM B WHERE B.c = outer_row.c; inner_row = inner_iterator.next; while(inner_row) { output[inner_row.yy,outer_row.xx]; inner_row = inner_iterator.next; } outer_row = outer_iterator.next; } 可以看到,最外层的查询是根据A.xx列来查询的,A.c上如果有索引的话,整个关联查询也不会使用。再看内层的查询,很明显B.c上如果有索引的话,能够加速查询,因此只需要在关联顺序中的第二张表的相应列上创建索引即可。
以上就是mysql使用关联查询的注意点,算是对关联查询的优化,大家学会后也赶快试试吧。更多mysql学习指路:MySQL
推荐操作系统:windows7系统、mysql5.8、DELL G3电脑
课程教程:mysql使用关联查询的注意点下一篇:没有了