mysql没加引号导致全表扫描_mysql隐蔽的索引规则导致数据全表扫描
索引是为了加速数据的检索,但是不合理的表结构或适应不当则会起到反作用。我们在项目中就遇到过类似的问题,两个十万级别的数据表,在做连接查询的时候,查询时间达到了7000多秒还没有查出结果。
首先说明,关联的字段都已经建立了相对应的索引,在执行计划的时候发现另外一张表没有走索引,结果如下图:
具体描述为:Range checked for each record (index map: 0x1); Not exists
优化:
1、当然最直接的想法就是修改两个表的request_id字段的定义,改成相同即可。修改完成后,执行计划还是和没有修改的时候一样
2、由于两张表中的字段类型都是varchar类型的,所以猜测会存在字符集的问题,在Navicat中查看其排序规则不同
3、修改完成后,执行计划
关联查询走了索引,并且查询速度从之前的7000多秒没有查出结果变成了0.25秒出现了结果
结论:
1、表列类型,与where值类型不同会导致全表扫描。
例:phone char(11) select * from table where phone=12345678901;
2、join的两个表的字符编码不同,不能命中索引,会导致笛卡尔积的循环计算(mysql8.0已经做了相关优化,字符集不在影响索引)
以上内容希望帮助到大家,很多PHPer在进阶的时候总会遇到一些问题和瓶颈,业务代码写多了没有方向感,不知道该从那里入手去提升,对此我整理了一些资料,包括但不限于:分布式架构、高可扩展、高性能、高并发、服务器性能调优、TP6,laravel,YII2,Redis,Swoole、Swoft、Kafka、Mysql优化、shell脚本、Docker、微服务、Nginx等多个知识点高级进阶干货需要的可以免费分享给大家
或 者关注我每天分享技术文章PHP架构师之路www.zhihu.com
来源:https://www.cnblogs.com/tm2015/p/11310451.html
mysql没加引号导致全表扫描_mysql隐蔽的索引规则导致数据全表扫描相关推荐
- excel自动排班表_Excel数据分析-如何制作自动更新的数据透视表
数据透视表是我们工作中一个非常强大的数据汇总分析功能,大家一定会遇到这样的问题,就是数据源如果每天或者经常性需要更新的话,那么我们的数据透视表就要在每次更新后重新选择数据源,如何能让数据源自动更新呢? ...
- jpa在自己创建表的是字段名不一致_用 数据透视表 完成 Excel多表合并
一般情况下,数据透视表只能汇总一个表格中的数据.即使使用多区域汇总,也只能对多表的单列内容进行数据汇总,而多列却无法实现.前段时间也推送过Power Query的方法,但它有版本限制.而今天宏兴会计培 ...
- wps透视表列总计移到顶部_在数据透视表顶部显示总计
wps透视表列总计移到顶部 In a pivot table, you can choose to show or hide the grand totals, but you can't chang ...
- mysql 唯一索引出现重复数据_mysql使用唯一索引避免插入重复数据
使用MySQL 索引防止一个表中的一列或者多列产生重复值 一:介绍MYSQL唯一索引 如果要强烈使一列或多列具有唯一性,通常使用PRIMARY KEY约束. 但是,每个表只能有一个主键. 因此,如果使 ...
- excel 宏 数据透视表_宏从多个文件创建Excel数据透视表
excel 宏 数据透视表 If you want to create a pivot table from data on different worksheets, you can use a M ...
- mysql行锁索引问题_Mysql锁机制--索引失效导致行锁变表锁
=============== Tips:在阅读本文前,最好先阅读 这篇(Mysql锁机制--行锁)文章~ 在上篇文章中,我们看到InnoDB默认的行锁可以使得操作不同行时不会产生相互影响.不会阻塞, ...
- mysql创建备份表脚本_MySQL 备份脚本(单库/分库分表)
MySQL数据库分库备份 数据库密码保存在/etc/my.cnf文件中,所以在执行与mysql相关的命令不需要输入密码 分库备份思路: mysqldump db1 >db1.sql.gz mys ...
- mysql存储过程 分表统计_mysql 存储过程:把昨天的数据找出来并保存到对应的月份分表...
DELIMITER $$ CREATE PROCEDURE insertDataEveryday() BEGIN #把昨天的数据找出来插入到对应的月份分表 DECLARE v_tableName, v ...
- excel透视表无添加字段_为内部字段添加数据透视表小计
excel透视表无添加字段 How was your weekend weather? We had a mini-blizzard yesterday, that covered the backy ...
最新文章
- MySQL 学习笔记(2)— 通配符/正则表达/运算符
- auve子表单中只读不好用
- 东农计算机应用与技术离线作业,东农16春《计算机应用与技术》在线作业.doc
- asp图片截图代码并且利用asp上传图片压缩
- 调研机构称明年全球数据中心基础设施支出将增长6%
- 0009:err:module:__wine_process_init failed to load xxx
- 飞鸽传书2007绿色版的发展
- ZKWeb网页框架2.1正式发布
- 从0开始学习 GITHUB 系列之「如何发现优秀的开源项目?」
- chainmaker VerifyingBlock height is not equal to proposed block
- 这就是神经网络 7:深度学习-目标检测-超详细图解Faster R-CNN
- 什么是拖库,撞库和洗库
- PR视频转场预设 10个快节奏极限运动空间扭曲效果PR转场过渡预设
- Android 网页无法打开 net:ERR_UNKNOWN_URL_SCHEME
- 【转】plt.plot的颜色
- PHP全国快递寄件接口,1天接入四通一达,极兔,宅急送,德邦,京东,天天
- C语言二维数组范德蒙,2、编写一个程序,实现一个3×4矩阵转置。
- 我劝你不要再留QQ邮箱了
- python你TM太皮了——区区30行代码就能记录键盘的一举一动
- windows 10中如何删除新加硬盘中系统分区和恢复分区
热门文章
- VSTO应用程序中加入键盘钩子
- linux 服务器进程,如何查看Linux服务器的进程
- guns企业高级单体版(前后端不分离)运行启动
- win10升级后chrome碰到对话框就卡死
- Spring与Struts框架整合
- mysql 跳表 b 树_简单谈谈Mysql索引与redis跳表
- docker 指定网卡_Docker | Docker技术基础梳理(五) Docker网络管理
- html城市绘制,HTML5/Canvas二分法构建城市版图
- java scanner_Java Scanner match()方法与示例
- c语言中将整数转换成字符串_在C语言中将ASCII字符串(char [])转换为十六进制字符串(char [])...