mysql 隐式类型转换_scala的隐式转换

mysql 隐式类型转换_scala的隐式转换在mysql查询中,当查询条件左右两侧类型不匹配的时候会发生隐式转换,可能导致查询无法使用索引。下面分析两种隐式转换的情况看表结构phone为int类型,name为varcharEXPLAINselect*fromuserwherephone=’2’EXPLAINselect*fromuserwherephone=2两种情况都可以用到索引,这次等号右侧…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

在mysql查询中,当查询条件左右两侧类型不匹配的时候会发生隐式转换,可能导致查询无法使用索引。下面分析两种隐式转换的情况

看表结构 phone为 int类型,name为 varchar

8dba12d749cd7c1c3b16d28ddc4f5457.png

EXPLAIN select * from user where phone   = ‘2’

EXPLAIN select * from user where phone   = 2

两种情况都可以用到索引,这次等号右侧是’2’,注意带单引号哟,左侧的索引字段是int类型,因此也会发生隐式转换,但因为int类型的数字只有2能转化为’2’,是唯一确定的。所以虽然需要隐式转换,但不影响使用索引,不会导致慢查询

EXPLAIN select * from user where name= ‘2’

这种情况也能使用索引,因为他们本身就是varchar 类型

0bd6114276a39a8c2a03587e1c71044c.png

EXPLAIN select * from user where name= 2

因为等号两侧类型不一致,因此会发生隐式转换,cast(index_filed as signed),然后和2进行比较。因为’2’,’   2’,’2a’都会转化成2,故MySQL无法使用索引只能进行全表扫描,造成了慢查询的产生。

4d326001a9a867ebe056fa7bc8a8df55.png

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/183099.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • webpack基础打包命令_逆向webpack打包后的js

    webpack基础打包命令_逆向webpack打包后的js没有配置文件的打包如果我们没有使用配置文件webpack.config.js,那么我们就需要通过命令来打包案例我们首先创建一个webpackTest文件夹,然后在文件夹中再创建2个子文件夹dis

    2022年7月29日
    8
  • 文本分类算法之–贝叶斯分类算法的实现Java版本

    文本分类算法之–贝叶斯分类算法的实现Java版本package com.vista;import java.io.IOException;      import jeasy.analysis.MMAnalyzer;/*** 中文分词器*/public class ChineseSpliter {    /**    * 对给定的文本进行中文分词    * @param text 给定的文本   

    2022年5月30日
    30
  • 分布式事务TCC方案Hmily——springcloud + feign + mybatis

    分布式事务TCC方案Hmily——springcloud + feign + mybatisTCC理论:分布式事务基础理论——TCCHmily介绍:分布式事务TCC方案——Hmily金融级柔性分布式事务解决方案介绍本文demo代码:GitHub依赖<dependency><groupId>org.dromara</groupId><artifactId>hmily-springcloud</artifactId><vers

    2022年5月13日
    69
  • C++的后端框架从头开发[通俗易懂]

    C++的后端框架从头开发[通俗易懂]基于C++的后端框架Ratel简介:从开发到现在已经半个月了,我会进行长期地开发、维护和优化,直到它变得完善。各种建议和错误读者都可以和我联系,从公众号中就可以找到我的联系方式~Ratel后端框架目前采用C++作为开发语言,理想的效果是实现一个通用的、灵活的、高效的后端开发框架,可以自由选择不同的I/O复用机制,可以自由选择采用多线程、多进程或协程方式实现,并且可以跨平台Linux和Window平台编译和运行。目前已有功能:Linux和Windows跨平台运行

    2022年6月9日
    137
  • Linux三剑客 grep sed awk 详细使用方法

    Linux三剑客 grep sed awk 详细使用方法Linux中最重要的三个命令在业界被称为“三剑客”,它们是awk,sed,grep。我们现在知道Linux下一切皆文件,对Linux的操作就是对文件的处理,那么怎么能更好的处理文件呢?这就要用到我们上面的三剑客命令。在说这三个命令前我们要插入一个小插曲就是“正则表达式”。一、正则表达式所谓的正则表达式我个人理解就是正规的表示方法。他是用简单的方法来实…

    2022年7月11日
    17
  • VM虚拟机连不上网解决办法「建议收藏」

    VM虚拟机连不上网解决办法「建议收藏」VM虚拟机不能上网的问题解决    说在前面的话:很多网友看了我的文章后,虚拟机还是不能上网,就联系我帮忙,结果帮他们给弄好后,都说怪自己太粗心,没有仔细看文章。我不是怕网友麻烦我,我是真诚的希望各位要首先认真仔细地看完文章,一步一步按照文章操作,一般自己都可以解决问题 。确实不行的,欢迎联系我!         关于VM虚拟机上网的问题,有很多网友求助我,说虚拟机不能上网。今

    2022年4月19日
    954

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号