mysql 关联查询 索引不起作用原因记录

用Python进行GEO数据挖掘(学习笔记四):富集分析 该笔记详细解释了富集分析的工作原理,并简要地利用gseapy在python中进行富集分析的操作。 阅读详情

业务逻辑如下:查询某篇文章的评论列表,且列出评论人及被评论人的昵称、头像。

先看一下表结构

评论表:

评论表的索引:

用户表:

用户表的索引:

查询语句如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
SELECT
    t1.comment_id commentId,
    t1.content content,
    t1.create_date replyDate,
    t1.fk_user_id replyUserId,
    t1.avatar_url replyAvatarUrl,
    t1.nick_name replyNickName,
    t2.nick_name repliedNickName
FROM
    (
        SELECT
            a.comment_id,
            a.p_comment_id,
            a.content,
            a.create_date,
            a.fk_user_id,
            b.avatar_url,
            b.nick_name,
            a. STATUS
        FROM
            tb_cms_comment a,
            tb_cms_appuser b
        WHERE
            a.fk_user_id = b.user_id
        AND a. STATUS = 1
        AND a.fk_content_id = 'F6D5ACB54EA94C1C8D5B2397AF7B546b'
    ) t1
LEFT JOIN (
    SELECT
        a.comment_id,
        b.nick_name
    FROM
        tb_cms_comment a,
        tb_cms_appuser b
    WHERE
        a.fk_user_id = b.user_id
    AND a.fk_content_id = 'F6D5ACB54EA94C1C8D5B2397AF7B546b'
) t2 ON t1.p_comment_id = t2.comment_id
ORDER BY
    STR_TO_DATE(
        t1.create_date,
        '%Y-%m-%d %H:%i:%s'
    ) DESC

  理论上讲执行评论表和用户表的关联查询时,会用到在评论表上创建的索引idx_con_st_user和用户表的idx_user_id索引,但用explain查看sql的执行计划时,用户表的索引一直没被使用上,纠结了一天,最后用mysql自带的客户端工具详细查看sql的执行计划时才发现问题所在,所以各位如果出现类似情况可以通过以下步骤检查一下:

1、两表关联使用的条件字段中字段的长度是否是一致的

2、两表关联使用的条件字段中字段的编码是否是一致的

如果以上两个条件未满足,基本是用不上索引的,我的情况就是第二种情况引起的

1
a.fk_user_id = b.user_id ,fk_user_id 的编码是utf8 而 user_id 的编码方式是utf8mb4的,所以导致索引失效
三思而后行!
连续相位调制通信调制方法的载波同步和定时同步研究及MATLAB仿真 本文将探讨CPM调制方法中的载波同步和定时同步问题,并提供MATLAB仿真源代码。本文讨论了连续相位调制通信中的载波同步和定时同步问题,并提供了相应的MATLAB仿真源代码。通过适当的载波同步和定时同步方法,可以实现对CPM信号的准确解调。希望本文对您理解连续相位调制通信调制方法的载波同步和定时同步问题有所帮助,同时也为您提供了一些MATLAB仿真实现的思路和示例代码。在CPM系统中,载波同步的主要任务是估计接收信号的载波频率偏移和相位偏移。在CPM系统中,常用的定时同步方法是基于自相关函数的峰值检测。 阅读详情

相关推荐

Unity URP半透明物体渲染避坑指南:双面渲染与深度写入的实战技巧

本文深入探讨了Unity URP中半透明物体自交叠渲染问题的核心根源与解决方案。针对模型自身交叠导致的排序错误,文章提供了双面渲染与深度写入两种实战技巧,详细分析了其实现原理、性能开销及适用场景,帮助开发者根据项目需求选择最优方案,有效提升玻璃、水体等材质的视觉表现。

sunny的博客 545

MYSQL索引失效

博客主页:🏆看看是李XX还是李歘歘🏆 🌺每天不定期分享一些包括但不限于计算机基础、算法、后端开发相关的知识点,以及职场小菜鸡的生活。🌺 💗点关注不迷路,总有一些📖知识点📖是你想要的💗 ⛽️今天的内容是 MYSQL索引失效 ⛽️💻💻💻 1. MySQL 索引使用有哪些注意事项呢? 哪些情况索引会失效,索引不适合哪些场景以及索引规则 索引哪些情况会失效 like通配符可能导致索引失效。 【当我们使用左或者左右模糊匹配的时候,也就是like %xx或者like %...

分享包括但不限于计算机基础知识、数据结构与算法、Golang技术栈。年与时驰,意与日去,遂成枯落,多不接世,悲守穷庐,将复何及! 2517

保姆级教程:手把手教你给联想System x 3650 M5服务器配置RAID 5并U盘装系统

本文提供联想System x 3650 M5服务器配置RAID 5并U盘安装系统的详细教程,特别适合零基础运维人员。从准备工作、RAID 5配置到U盘引导和系统安装,涵盖全流程关键步骤与常见问题解决方案,帮助用户高效完成服务器部署。

weixin_42535703的博客 359

索引失效了?看看这几个常见的原因!

索引是 MySQL 数据库中优化查询性能的重要工具,通过对查询条件和表数据的索引,MySQL可以快速定位数据,提高查询效率。但是,在实际的数据库开发和维护中,我们经常会遇到一些情况,导致索引失效,从而使得查询变得非常缓慢,甚至无法使用索引来优化查询,这会严重影响系统的性能。那么,是什么原因导致了索引失效呢?下面我通过实际的例子来具体说说。

csdn1234561231的博客 1340

单节锂电池充电管理芯片应用原理阐述及应用领域

当电池电压超过2.9V时,采用恒流模式对电池充电,充电电流由PROG 管脚和GND之间的电阻RPROG确定。充电电压固定于4.2V,而充电电流可通过一个电阻器进行外部设置当充电电流在达到最终浮充电压之后降至设定值1/10时,WD4054将自动终止充电循环。在待机模式中,WD4054 对 BAT 引脚电压进行监控,只有当 BAT 引脚电压低于再充电阈值电压4.1V时(对应电池容量80%~90%),才会开始新的充电循环,重新对电池进行充电,这就避免了对电池进行不必要的反复充电,有效延长电池的使用寿命。

weixin_41141180的博客 950

别再乱调栅极电阻了!手把手教你用示波器调试FOC驱动MOS管,避开EMC和震荡坑

本文详细介绍了FOC驱动中MOS管栅极参数的精准调试方法,涵盖示波器配置、波形特征分析及栅极电阻选型策略。通过实战案例和工程经验,帮助工程师有效解决EMC和震荡问题,提升驱动电路稳定性和效率。

weixin_28728495的博客 504

mysql联合索引有效和失效的情况分析

联合索引在数据库设计中,经常会用到。但是,关于联合索引的所用原则,是否有效。大多数博主分析得还不够完善,比如i(a,b,c),他们都会告诉你i(a),i(a,b),i(a,b,c)有效,其他情况要么说是无效,要么没有分析。本文就把每种可能的情况都分析一下。

zlt198702的博客 1579

【蓝牙专题】HCI协议解析

一、概念: 很多人接触蓝牙,是从HCI开始,因为HCI是主机控制接口协议(Host Controller Interface),蓝牙命令通过HCI来发送到Controller; 1、架构 如下图,HCI通过物理接口(USB、UART等)或虚拟接口,传递数据到Controller,Controller也通过同样的接口发送接收数据,这里注意到HCI层是在L2CAP层之下,LMP层之上; HCI

蚂蚁的专栏 5070

mysql 表关联之后索引失效的原因排查

1、两表关联使用的条件字段中字段的长度是否是一致的 2、两表关联使用的条件字段中字段的编码是否是一致的 3,更本就没用到关联表中的字段去查询 今天我发现的问题就是第三个, 客户信息36万,中间表62万,关联了却没用到中间表的城市id去查导致没有用到索引 优化之后我的分页查询是这样的 if("2".equals(customer.getSourceType()) &&customer.getHoHouseCustomer()!=null &&Str

zhaofuqiangmycomm的博客 5150

GEE AI: 利用 Satellite Embedding 语义搜索快速识别研究区目标斑块

摘要 本文介绍了一种基于Google Earth Engine的遥感语义搜索技术,利用Satellite Embedding数据集快速识别目标地物。该方法通过将光谱信息转化为高维向量,在武汉市的案例中展示了如何:1)定义研究区和样本点;2)加载预处理的Embedding数据;3)计算向量相似度;4)结合面积过滤优化结果。相比传统监督分类,该技术具有响应快速(无需模型训练)、抗季节干扰和精准界定等优势,特别适用于森林碳储量监测和土地利用检测等应用场景。文中提供了完整的GEE代码实现流程,包括样本定义、相似度计

此星光明博客 627

Coze HTTP请求节点实战:5分钟搞定天气API对接(含动态参数技巧)

本文通过一个天气预报API对接的实战案例,详细讲解了如何在Coze平台使用HTTP请求节点实现外部数据交互。文章重点演示了动态参数传递、JSON响应解析与错误处理等核心技巧,帮助开发者在5分钟内快速构建稳定可靠的智能体外部服务调用能力。

weixin_29233333的博客 677

mysql导致索引失效的常见情况以及命名规范索引计划分析

mysql导致索引失效的常见情况

qq_37741426的博客 537

【Java基础知识 1】Java入门级概述

优快云最强Java专栏,包含全部Java基础知识点、Java8新特性、Java集合、Java多线程、Java代码实例,理论结合实战,实现Java的轻松学习。

学Java,找哪吒 16万+

【转载】mysql 关联查询 索引不起作用原因记录

mysql 关联查询 索引不起作用原因记录 http://www.cnblogs.com/angryprogrammer/p/4304932.html 转载于:https://www.cnblogs.com/yaoguoguo/articles/7603509.html

dfenwc7605的博客 193

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

mysql联合索失效_mysql 关联查询 索引不起作用原因记录

业务逻辑如下:查询某篇文章的评论列表,且列出评论人及被评论人的昵称、头像。先看一下表结构评论表:评论表的索引:用户表:用户表的索引:查询语句如下:SELECTt1.comment_id commentId,t1.content content,t1.create_date replyDate,t1.fk_user_id replyUserId,t1.avatar_url replyAvatarUr...

weixin_28948785的博客 789

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

MySQL关联查询如何优化

前面讲了原理,从原理出发,讲一下优化的建议被驱动表的连接字段建立索引,因为建立索引的查询方式是效率最高的。left join 或者 right join 这种外连接的情况,要保证小表(小结果集)作为驱动表,大表(大结果集)作为被驱动表,这样性能更好。在查询字段的话,要避免写出 select * ,而是根据业务需要,需要查询出来的 select 出来就行,因为这些字段也会加入到 join buffer 中,减少额外的内存消耗。能够直接多表关联的尽量直接关联,不用子查询,因为子查询的效率更加低。

清晨qc的博客 2892

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

MySQL第九讲·索引怎么提高查询的速度?

索引可以非常显著的提高数据查询的速度,数据表里包含的数据越多,效果越显著。我们应该选择经常被用做筛选条件的字段来创建索引,这样才能通过索引缩小实际读取数据表中数据的范围,发挥出索引的优势。如果有多个筛选的字段,而且经常一起出现,也可以用多个字段来创建组合索引。drop index 索引名 on 表名;当然, 有的索引不能用这种方法删除,比如主键索引,我们就必须通过修改表来删除索引。alter table 表名 drop primary key;

安然无虞的博客 7329

Mysql JSON索引与关联查询

Mysql JSON索引与关联查询

没有风的天空 6704

【MySQL】索引优化与关联查询优化

如果对索引的过滤条件中限制了一定范围,那么使用B+数来查询后,索引中剩下字段也就没有意义来。在过滤条件(WHERE)中使用了索引的情况下,要按照索引建立时的顺序从左往右筛选,如果中间跳过了某个字段,比如跳过了。在内连接中小表驱动大表,优化器会对两个表进行计算,将数据量小的表作为驱动表,数据量大的表作为被驱动表。使用了越多的属性来建立索引,会加快SQL查询的效率,能加速每一个属性的查询。,可以设置0为INT类型字段的初始值,空字符串为字符串类型的初始值。具有索引,因此,这里的被驱动表仍然是。

lrzHHl的博客 1596

mysql 多表关联查询如何改进

在进行多表关联查询时,可以通过使用正确的连接类型、优化 WHERE 子句、为关联字段创建索引、减少查询的字段、考虑使用分布式查询、尽量避免子查询、优化连接顺序、利用 EXPLAIN 分析查询、分解复杂查询和使用视图或存储过程等方法来提高查询性能。

洪晓鸿 6445

MySQL索引优化分析4—关联查询与子查询优化

MySQL索引优化分析4—关联查询与子查询优化1.关联查询优化1.1 案例1.2 建议2.子查询优化 之前介绍了单表查询中的索引优化,本节将介绍关联查询中的索引优化。 1.关联查询优化 案例将使用的数据表的创建如下: # 1.创建图书类型表class CREATE TABLE IF NOT EXISTS `class` ( `id` INT(10) UNSIGNED NOT NULL AUTO_...

PassionZheng的博客 2067

MySQL高级篇——关联查询和子查询优化

左外连接:优先右表创建索引,连接字段类型要一致、内连接:驱动表由数据量和索引决定、 join语句原理、子查询优化:拆开查询或优化成连接查询

种一棵树最好的时间是十年前,其次是现在 4182

mysql 关联查询 分页_Mysql分页&关联查询优化

以下内容参考《高性能Mysql》优化关联查询这个话题基本上整本书都在讨论,这里需要特别提到的是:确保ON或者USING子句中的列上有索引。在创建索引的时候就要考虑到关联的顺序。当表A和表B用列c关联的时候,如果优化器的关联顺序是B、A,那么就不需要在B表的对应列上建上索引。没有用到的索引只会带来额外的负担。一般来说,除非有其他理由,否则只需要在关联顺序中的第二个表的相应列上创建索引。确保任何的GR...

weixin_36166752的博客 868

MySQL索引和查询优化

MySQL提供的explain可以对select语句执行计划进行分析,并输出select执行的详细信息,以供开发人员针对性优化。

qq_48114126的博客 2023

mysql关联查询和查询优化

mysql关联查询 参考:https://blog.youkuaiyun.com/lu0422/article/details/78892497 mysql查询慢的原因 记录慢查询日志 分析查询日志,不要直接打开慢查询日志进行分析,这样比较浪费时间和经历,可以使用pt-query-digest工具进行分析 使用show profile set profileing = 1;开启,服务器上执行所有...

qinAction的博客 2404

mysql延时关联

描述 mysql有种sql优化方式,叫延时关联,即通过使用覆盖索引查询返回需要的主键,再根据主键关联原表获得需要的数据,尤其在大分页查询的场景下,可以提高查询效率。例如下面两行SQL查询语句,在使用覆盖索引的大分页查询场景下,第二条的执行速度要远远快于第一条SQL。 select * from table where xxx limit a,b; select * from table wher...

祈雨v的博客 5591
上一篇: idea 远程debug和 远程 deploy
下一篇: 深入理解java虚拟机(十三) Java 即时编译器JIT机制以及编译优化
zljjava
博客等级 码龄15年 155粉丝 15原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值