SELECT
t0.ID as id,
t0.`NAME` as name,
t0.PHONE as phone,
t0.`CITY_CODE` as cityCode,
t0.SHOOTING_TIME as shootingTime,
t0.REMARK as remark,
t0.SOURCE_FROM as sourceFrom,-- 平台来源
t0.REFER as refer,
t0.UPDATE_TIME as updateTime,
CONCAT(IFNULL(t0.SHOOTING_NAME,''),t1.SHOOTING_NAME) as shootingName,
t0.SHOOTING_ADDRESS as shootingAddress,
t0.CREATE_TIME as createTime,
CASE t0.OP_RESULT
WHEN 1 THEN '确认需求'
WHEN 2 THEN '无效需求'
WHEN 3 THEN '询价需求'
WHEN 4 THEN '其他需求'
ELSE ''
END as opResultStr,
t0.OP_EXPLAIN as opExplain,
t1.ORDER_ID as orderCode,
t2.name as sysName,-- 处理人
t0.STATUS as status,
t0.OP_TIME AS opTime,
t3.COUPONS_ID AS couponsId,
t5.DESCRIPTION AS couponsDescription,
t4.`CODE` AS couponsCode,
t5.EXPIRY_DATE AS couponsExpiryDate,
t3.STATE AS couponsState,
ao.ORDER_ID AS reqOrderCode,
ao.SHOOTING_NAME AS reqShootingName,
ci.CITY_NAME as cityName
FROM
V_TBL_REQUIREMENT AS t0
     -- 问题出处
left join V_TBL_USER_ORDER t1 ON t1.REQUIREMENT_ID IS NOT NULL AND t0.ID = t1.REQUIREMENT_ID
left join t_user t2 ON t0.OP_CUSTOMMANAGER_ID = t2.id
LEFT JOIN V_TBL_COUPONS_USER t3 ON t0.ID = t3.REQUIREMENT_ID
LEFT JOIN V_TBL_COUPONS t4 ON t3.COUPONS_ID = t4.ID
LEFT JOIN V_TBL_COUPONS_TEMPLATE t5 ON t4.COUPON_TEMPLATE_ID = t5.ID
LEFT JOIN V_TBL_PHOTO_ALBUM a ON a.wechatMd5 = t0.WECHAT_MD5
LEFT JOIN V_TBL_USER_ORDER ao ON ao.ID = a.orderId
LEFT JOIN V_TBL_CITY ci on ci.CITY_CODE =t0.CITY_CODE
查询语句如上,
FROM V_TBL_REQUIREMENT AS t0 left join V_TBL_USER_ORDER t1 ON t1.REQUIREMENT_ID IS NOT NULL AND t0.ID = t1.REQUIREMENT_ID
其中 V_TBL_USER_ORDER 明明存在字段REQUIREMENT_ID存在索引,
但是explain解释执行后却是ALL,
在另一个DDL相同的环境中执行却走了索引 一整乱找原因,
最后发现可能是该环境是此表此字段的索引基数太小,
MYSQL自己估计使用全表扫描要比使用索引快,所以不使用索引了
最后使用强制索引解决问题
left join V_TBL_USER_ORDER t1 FORCE INDEX(INDEX_V_TBL_USER_ORDER_REQUIREMENT_ID) ON t1.REQUIREMENT_ID IS NOT NULL AND t0.ID = t1.REQUIREMENT_ID

mysql left join查询没走索引的更多相关文章

  1. 一次MySQL线上慢查询分析及索引使用

    本文由作者郑智辉授权网易云社区发布. 0.前言 本文通过分析线上MySQL慢查询日志,定位出现问题的SQL,进行业务场景分析,结合索引的相关使用进行数据库优化.在两次处理问题过程中,进行的思考. 1. ...

  2. 关于mysql中like查询是否通过索引的测试

    测试mysql的like语句是否通过索引时得到结果如下: 图片1: 图片2: 图片3: 通过上述3组图片我想大家很容易愤青我使用的'%8888888%','%8888888'和'8888888%'3中 ...

  3. sql查询未走索引问题分析之查询数据量过大

    前因: 客户咨询,有一个业务sql(代表经常被执行且重要),全表扫描在系统占用资源很高(通过ash报告查询得到信息) 思路: 1.找到sql_text,sql_id 2.查看执行计划 3.查询sql涉 ...

  4. oracle like模糊查询不能走索引?

    这里要纠正一个网上很多教程说的模糊匹配不能走索引的说法,因为在看<收获,不止SQL优化>一书,里面举例说到了,并且自己也跟着例子实践了一下,确实like一些特殊情况也是可以走索引的 例子来 ...

  5. like模糊查询是否走索引

    1.模糊查询 后通配 走索引 前通配 走全表 2.where条件用in或or 不会走索引索引的本质是平衡b+数,是为了方便查询的平衡多路查找树 B-Tree相比,B+Tree有以下不同点: 每个节点的 ...

  6. MySQL查询为什么没走索引?这篇文章带你全面解析

    工作中,经常遇到这样的问题,我明明在MySQL表上面加了索引,为什么执行SQL查询的时候却没有用到索引? 同一条SQL有时候查询用到了索引,有时候却没用到索引,这是咋回事? 原因可能是索引失效了,失效 ...

  7. mysql 有索引没走索引 更新锁全表

    Session 1: mysql> select connection_id(); +-----------------+ | connection_id() | +-------------- ...

  8. 让mysql查询强制走索引

    select * from slot_value_temp force index(idx_slot_type_id) WHERE slot_type_id = 'xxxxxx'; 不定期更新

  9. mysql left join 查询

    inner join(等值连接) 只返回两个表中联结字段相等的行 left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录 左连接实例: SELECT t. NAME, t1. ...

随机推荐

  1. Nano

    Nano命令指南 今天在输命令时,无意中输入了nano,对这个命令不太熟悉,结果不知道如何才能退出,保存,赶快查了一下资料,原来是这样的啊. 打开文件与新建文件 使用nano打开或新建文件,只需键入: ...

  2. this bind apply call

    this 是当前函数运行时所属的对象bind 是指定一个函数运行时的上下文,也就是说把这个函数的this指向绑定到相应对象上,默认的暴露在全局御中的函数this指向widow对象, 严格模式下全局的t ...

  3. 【SSH原理】ssh用法及命令

    什么是SSH? Secure Shell  安全外壳协议 简单说,SSH是一种网络协议,用于 计算机之间的加密登录.如果一个用户从本地计算机,使用SSH协议登录另一台远程计算机,我们就可以认为,这种登 ...

  4. 流畅的python第九章笔记 python风格的python

    9.1对象表示形式 __repr__和__str__这两个方法都是用于显示的,__str__是面向用户的,而__repr__面向程序员. 我们打印下面的A是默认输出这个对象的类型,我们对B进行了修改_ ...

  5. Selenium2+python自动化2-pip降级selenium3.0【转载】

    selenium版本安装后启动Firefox出现异常:'geckodriver' executable needs to be in PATH selenium默默的升级到了3.0,然而网上的教程都是 ...

  6. cpp调用dll

    c++ 显示调用 其他程序dll #pragma comment(lib, "DllTest.lib") int fnDllTest(void); int c = fnDllTes ...

  7. 第十四届华中科技大学程序设计竞赛 J Various Tree【数值型一维BFS/最小步数】

    链接:https://www.nowcoder.com/acm/contest/106/J 来源:牛客网 题目描述 It's universally acknowledged that there'r ...

  8. 51nod 1095 Anigram单词【hash/map/排序/字典树】

    1095 Anigram单词 基准时间限制:1 秒 空间限制:131072 KB 分值: 10 难度:2级算法题  收藏  关注 一个单词a如果通过交换单词中字母的顺序可以得到另外的单词b,那么定义b ...

  9. Educational Codeforces Round 33 (Rated for Div. 2) A. Chess For Three【模拟/逻辑推理】

    A. Chess For Three time limit per test 1 second memory limit per test 256 megabytes input standard i ...

  10. HihoCoder 1629 Graph (2017 ACM-ICPC 北京区域赛 C题,回滚莫队 + 启发式合并 + 可撤销并查集)

    题目链接  2017 ACM-ICPC Beijing Regional Contest Problem C 题意  给定一个$n$个点$m$条边的无向图.现在有$q$个询问,每次询问格式为$[l, ...