【说站】mysql使用关联查询的注意点
2025-01-09
22
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电脑
更新于:7天前赞一波!
相关文章
- 【说站】mysql多表查询如何实现
- 【说站】MySQL中join buffer是什么
- 【说站】mysql有哪些建立索引的方法
- 【说站】mysql表导出的两种方法
- 【说站】如何在mysql表中进行导入
- 【说站】mysql备份恢复策略是什么
- 【说站】mysql有哪些备份数据库的方式
- 【说站】mysql物理备份如何理解
- 【说站】mysql独占写锁是什么
- 【说站】mysql行锁的优缺点
- 【说站】MySQL中的逻辑备份是什么
- 【说站】mysql有哪些数据操作
- 【说站】mysql中SQL的概念介绍
- 【说站】mysql中系统变量的两种类型
- 【说站】mysql中自定义变量有哪些
- 【说站】mysql主键约束的设置
- 【说站】mysql存储过程是什么
- 【说站】查看mysql版本的命令
- MySQL查看、修改字符集及Collation
- 【说站】mysql死锁的四个条件
文章评论
评论问答