MySQL关联查询的三种写法:

SELECT * FROM film JOIN film_actor ON (film.film_id = film_actor.film_id);
SELECT * FROM film JOIN film_actor USING (film_id);  --当两个要关联表的字段名是一样时,可以使用USING()
SELECT * FROM film, film_actor WHERE film.film_id = film_actor.film_id;

优化关联查询:

  • 确保ON或者USING子句中的列上有索引。在创建索引的时候就要考虑到关联顺序。一般来说,除非有其他理由,否则只需要在关联顺序中的第二个表的相应列上创建索引。比如当表film和表film_actor用列film_id关联的时候。如果优化器的关联顺序是film_actor、film 那么就不需要在film_actor表的film_id列上加索引了。
  • 确保任何的GROUP BY 和ORDER BY 中的表达式只涉及到一个表中的列,这样MySQL才有可能使用索引来优化这个过程。
  • 当升级MySQL的时候需要注意:关联语法、运算符优先级等其他可能会发生变化的地方。因为以前的是普遍关联的地方可能会变成笛卡尔积,不同类型的关联可能会生成不同的结果等。

参考:

[1]Baron Schwartz等 著,宁海元等 译 ;《高性能MySQL》(第3版); 电子工业出版社 ,2013

[2]博客,http://www.jb51.net/article/68442.htm

转载于:https://www.cnblogs.com/happyflyingpig/p/7797361.html

mysql-关联查询相关推荐

  1. Mysql 关联查询的优化 及 子查询优化

    Mysql 关联查询的优化 left join ①EXPLAIN SELECT * FROM class LEFT JOIN book ON class.card = book.card; ②如何优化 ...

  2. mysql关联查询操作表最新数据

    mysql关联查询操作表最新数据 mysql关联查询操作表最新数据的几种方式(max,order by)和性能分析,再数据量较多,关联ID存在索引的情况下建议使用方式二,速度更快.具体请看SQL及EX ...

  3. mysql 关联查询_响应时间长?MySQL查询优化教程来了!

    - 点击上方"爱数据学习社"关注我们吧! - 为什么查询会慢?--响应时间过长. 如果把查询看做是一个任务,那么它由一系列子任务组成,每个子任务都会消耗一定的时间.如果要优化查询, ...

  4. mysql 关联查询_Mysql查询优化器,再也不会因为该什么时候建立索引发愁了

    优化器的作用: 我们知道,一条SQL语句,可以有很多执行方式,最后都返回相同的结果,而优化器的作用就是找到最好的执行计划. 一.RBO-基于规则的优化器(rule) 系统内置的一套硬编码规则,根据规则 ...

  5. mysql 关联查询_mysql数据库调优(二)

    第五.查询优化 1.查询慢的原因:网络因素.CPU.IO.上下文切换.系统调用.生成统计信息.锁等待时间等 2.优化数据库访问:查询性能地下的原因是访问的数据太多,某些查询不可避免的需要筛选大量的数据 ...

  6. MySQL关联查询时,我们为什么建议小表驱动大表?

    作者:留兰香丶 blog.csdn.net/codejas/article/details/78632883 有的时候我们在操作数据库时会将两个或多个数据表关联起来通过一些条件筛选数据,在关联表时我们 ...

  7. MySQL—关联查询与子查询(从小白到大牛)

    前言  在大部分的数据库查询中,我们往往都不是进行简单的单表查询,而是多表查询.所以我们也必须学习SQL查询中的高级部分,如内连接.外连接和子查询,通过这些查询技术我们将能够解决项目中复杂的查询问题. ...

  8. mysql 关联查询

    数据库在通过连接两张或多张表来返回记录时,都会生成一张中间的临时表,然后再将这张临时表返回给用户. 1.inner join: 所有查询出的结果都是能够在连接的表中有对应记录: t_employee表 ...

  9. Mysql关联查询的几种方式(详解)

    在关系型数据库中,要进行多表查询,一般都会使用join连接.join连接的本质其实类似与集合的交并操作,Mysql实现关联查询常见的几种方式如下: 目录 1.左连接 2.右连接 3.内连接 4.全连接 ...

  10. 关于mysql关联查询然后进行分页的问题

    今天使用mysql的关联查询进行分页的时候遇到了一个问题,以前在单表查询的时候没有遇到这一的情况. 场景还原: 一张评论表,一张回复表,属于一对多的关系. 刚开始使用下面这条sql语句进行查询. SE ...

最新文章

  1. 实战:使用Nginx限流
  2. Springboot-读取核心配置文件及自定义配置文件
  3. 阿里云谦大佬:时间精力有限的情况下如何高效学习前端?
  4. 百度地图API实现地图应用
  5. Machine Learning课程中的常见符号的含义
  6. Spring框架(IoC、AOP面向接口切面)
  7. listenfd ---- accept事件
  8. 关于Dos窗口的设置
  9. 《具体数学》(二)和式
  10. SSM框架整合思想及步骤
  11. Android_JNI编程入门
  12. php抽奖幸运,幸运大转盘-jQuery+PHP实现的抽奖程序
  13. kobo glo安装koreader(刷ksm后)
  14. CISP——密码学基本概念(术语)
  15. 全球及中国机器视觉光源行业市场调查及投资可行性研究报告2022-2028年
  16. matlab航电系统仿真,航空航天和国防
  17. statis代码块以及非static代码块之执行
  18. 【BZOJ1778】[Usaco2010 Hol]Dotp 驱逐猪猡
  19. 记录python开发第一个app,实现word转html的桌面应用
  20. 5V的OVP过压保护IC,去掉不良率

热门文章

  1. CentOS6.5下安装mfs分布式存储(转)
  2. wamp2.2c集成环境搭建网站问题总结
  3. [4.6校内训练赛]
  4. Ubuntu 16.04 + Caffe
  5. 获取元素到页面上的位置
  6. 洗衣机一边进水一边出水 更换排水阀皮碗
  7. Android 开机自启动
  8. JS,Jquery获取select,dropdownlist,checkbox 下拉列表框的值
  9. Asp.net can do Native Code also can do it(updated)
  10. 【mysql知识点总结】