考虑以下查询:

SELECT *

FROM table1

LEFT JOIN table2 ON

table2.some_primary_key = table1.some_primary_key

LEFT JOIN table3 ON

table3.some_primary_key = table1.some_primary_key OR -- this is the issue

table3.column_with_index = table2.column_with_index

当我检查EXPLAIN时,它显示我没有使用index3连接的索引(但是索引显​​示在“possible_keys”中).输入:’ALL’.按照manual:

Join type “ALL”: A full table scan is done for each combination of rows from the

previous tables.

查询非常慢.

但是,当我删除其中一个条件时,它将是:

LEFT JOIN table3 ON

table3.some_primary_key = table1.some_primary_key

要么

LEFT JOIN table3 ON

table3.column_with_index = table2.column_with_index

Mysql正在使用索引.在EXPLAIN中,结果索引显示在“键”列中,类型为“ref”.查询速度非常快.

如何在连接语句中使用OR时使mysql使用我的索引?

我试过LEFT JOIN table3 FORCE INDEX(PRIMARY,ind_column),但没有成功.

mysql left join和or_mysql – 在LEFT JOIN中使用带OR条件的索引相关推荐

  1. Mysql 优化器内部JOIN算法hash join Nestloopjoin及classic hash join CHJ过程详解

    Mysql hash join之classic hash join CHJ过程详解 hash join的历史 优化器里的hash join算法在SQL Server.Oracle.postgress等 ...

  2. mysql不同字段full join_Mysql实现full join的替换方法

    目前mysql还不支持full join,只能使用left join.union.right join来实现.但使用这个方法解决多次full join的话代码量非常庞大,一直在思考有没有其他替代方法. ...

  3. mysql left join 中文_MySQL之LEFT JOIN问题汇总

    使用ON和WHRERE对表数据过滤 背景 left join在我们使用mysql查询的过程中可谓非常常见,比如博客里一篇文章有多少条评论.商城里一个货物有多少评论.一条评论有多少个赞等等.但是由于对j ...

  4. mysql数据库做关联查询_mysql 数据库join关联查询using(xxx)的作用

    user表: id | name --------- 1 | libk 2 | zyfon 3 | daodao user_action表: user_id | action ------------ ...

  5. mysql数据库交叉连接_MySQL交叉连接(CROSS JOIN)

    在本教程中,您将了解MySQL CROSS JOIN子句以及如何应用它来解决一些有趣的数据问题. MySQL CROSS JOIN子句简介 CROSS JOIN子句从连接的表返回行的笛卡儿乘积. 假设 ...

  6. mysql left join 三表查询_MySql的join(连接)查询 (三表 left join 写法)

    1.内连接:将两个表中存在连结关系的字段符合连接条件的记录形成记录集 Select A.name,B.name from A inner join B on A.id=B.id和 Select A.n ...

  7. MySQL查询优化之五-嵌套循环连接算法(Nested-Loop Join Algorithms)

    MySQL查询优化之五-嵌套循环连接算法(Nested-Loop Join Algorithms) 如需转载请标明出处:http://blog.csdn.net/itas109 QQ技术交流群:129 ...

  8. mysql 全连接_MySQL全连接(Full Join)实现,union和union all用法

    MySQL本身不支持你所说的full join(全连接),但可以通过union来实现 , 下面是一个简单测试,可以看看: mysql> CREATE TABLE a(id int,name ch ...

  9. mysql inner join_MySQL内连接(INNER JOIN)

    MySQL INNER JOIN子句将一个表中的行与其他表中的行进行匹配,并允许从两个表中查询包含列的行记录. INNER JOIN子句是SELECT语句的可选部分,它出现在FROM子句之后. 在使用 ...

最新文章

  1. 数据结构乐智教学百度云_网易云课堂 - 我的职业课堂
  2. Py_Initialize fails - unable to load the file system codec
  3. python快速编程入门第13章-Python快速编程入门,打牢基础必须知道的11个知识点...
  4. Advanced Installer 9.8打包实录
  5. 前端构建工具的用法—grunt、gulp、browserify、webpack
  6. 数据链路层:基本概念
  7. oracle 创建字段自增长——两种实现方式汇总(转)
  8. 剑指offer面试题6 重建二叉树(java)
  9. POJ-1163(DP,Water)
  10. 210页的《pandas官方文档中文版》.pdf
  11. IDEA 2017破解补丁方法
  12. 【AES】基于FPGA的128位AES加解密系统设计实现
  13. Sublime Text 3 的插件安装(完美解决插件安装出错的问题)及常用插件推荐
  14. MySQL中函数field()的用法
  15. WebView网页视频统一全屏播放及横竖屏切换
  16. 苏州大学在职研究生计算机专业,苏州大学在职研究生入学须知
  17. 自己实现notifyDatasetChanged
  18. OR-Tools:一个用于优化的开源软件 -0-简介与安装
  19. [译] 从原型图到成品:步步深入 CSS 布局
  20. 搜狐网络评论系统–畅言!与多说、友言、灯鹭、新浪评论简单评测

热门文章

  1. Android Studio的报错提示:Error while Launching activity
  2. MySQL-存储表情字符
  3. js:写一个函数实现任意数组的翻转
  4. Servlet 使用getRequestDispatcher进行请求转发页面未跳转 后台也未报错的问题的解决方法
  5. practice是什么意思_practice是什么意思 还有practice的用法
  6. 淘宝商家再也看不到客户手机号了
  7. 在线教育数据分析实战项目案例
  8. 15 | 网络优化(上):移动开发工程师必备的网络优化知识
  9. 易语言文本比较特征码
  10. A*算法理解(unity C#)