【说站】mysql使用关联查询的注意点
2025-01-09
5
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电脑
更新于:13小时前赞一波!
相关文章
- 【说站】mysql乐观锁如何实现
- 【说站】mysql中LIMIT分页如何优化
- 【说站】mysql查询优化策略有哪些
- 【说站】eclipse连接mysql
- 【说站】mysql常见函数有哪几类
- 【说站】mysql分组查询是什么
- 【说站】mysql间隙锁是什么
- 【说站】mysql中如何共享读锁
- MySQL SQL调优之索引
- 【说站】mysql如何创建哈希索引
- 【说站】mysql全文索引是什么
- 【说站】mysql中哈希索引的使用限制
- 【说站】mysql中explain有哪些属性
- 【说站】mysql哈希索引是什么
- 【说站】mysql中BTree索引的理解
- 【说站】mysql B+Tree索引是什么
- 【说站】mysql中B+Tree和B-Tree的区别
- mysql随机获取一条或者多条数据
- 【说站】mysql读写分离是什么
- 【说站】mysql数据库有哪些调优方法
文章评论
评论问答