解决like '%字符串%'时索引不被使用的方法

解决like ‘%字符串%‘时索引不被使用的方法

分步阅读

解决like ‘%字符串%‘时索引不被使用的方法,如果like以通配符开头(‘%abc‘)时索引会失效会变成全表扫描的操作。

工具/原料

  • mysql

方法/步骤

  1. 如果like以通配符开头(‘%abc‘)时索引会失效会变成全表扫描的操作。那么我们改如何解决这个问题。

  2.  

    现在我们建立一个tbl_user表,并加入如下图的数据。

  3.  

    我们现在在建立索引之前查看sql的执行计划。执行的是全表扫描。

  4.  

    现在我们建立name和age的覆盖索引。

  5.  

    现在我们再来看一下这个like的执行计划,查看是否使用了索引。我们现在的like使用到了索引。

  6.  

    如果非得使用like使用索引的话,就要使用覆盖索引来解决,你建的索引和查询的字段上一样。

解决like '%字符串%'时索引不被使用的方法

原文地址:https://www.cnblogs.com/hadley/p/9434043.html

时间: 2024-11-09 14:28:38

解决like '%字符串%'时索引不被使用的方法的相关文章

数据库调优教程(十) 【精华章节】解决like ’%str’ 时索引不被使用的4种方法

三.           索引 7.      解决like'%str'不使用模糊查询的4种方法 上一讲最后说了,只要模糊查询的模糊值在字符串前面,则不会使用索引,'%aaa'和'_aaa'都不会! 如下 应该说这是Mysql给程序员们开的一个玩笑.要是我的表数据量很大,而且又需要使用like'%%'这样的模糊查询来检索时,该怎么办?? 接下来,笔者将会给大家分享解决这个问题的四种方法! 1)    Select主键 只要Select的字段刚好是主键,那么就会使用到索引(只对innodb数据库有

拼凑字符串时,去除末尾多余字符的几个方法

title: 拼凑字符串时,去除末尾多余字符的几个方法 date: 2018-08-17 22:12:58 tags: [Java,方法] --- 在拼接字符串的时候,经常会发现多了,不想要的字符,让人很是烦恼,这下面总结三个可以去掉烦恼的方法. //循环生成json格式数据 public static String CreateJson() { String json="{\"content\":["; for(int i=0;i<5;i++) { json

Mysql中使用FIND_IN_SET解决IN条件为字符串时只有第一个数据可用的问题

今天在使用Mysql的存储过程处理数据的批量删除时,遇到了WHERE条件中使用IN(strlist)时(strlist为逗号分隔的字符串),只有strlist的第一个元素才有效的问题,现在将问题和解决方法做下记录. 我们首先创建两张表userinfo(用户信息表)和userextinfo(用户扩展信息表),其中userextinfo表的UserID字段为外键对应userinfo表中的UserID字段 用户信息表userinfo 初始数据 用户扩展信息表userextinfo 初始数据 现在表中有

Mysql性能优化:如何给字符串加索引?

原文:Mysql性能优化:如何给字符串加索引? 导读 现代大部分的登录系统都支持邮箱.手机号码登录两种方式,那么如何在邮箱或者手机号码这个字符串上建立索引才能保证性能最佳呢? 今天这篇文章就来探讨一下在Mysql中如何给一个字符串加索引才能达到性能最佳. 本文首发于作者的微信公众号[码猿技术专栏],原创不易,喜欢的朋友支持一下,谢谢!!! 陈某将会从什么是前缀索引.前缀索引和普通索引的比较.如何建丽最佳性能的前缀索引.前缀索引对覆盖索引的影响这几段来讲. 前缀索引 顾名思义,对于列值较长,比如B

解决nexus下载maven索引的问题

解决nexus下载maven索引的问题 (2011-10-12 17:48:46) 转载▼ 标签: it 分类: java 转自 http://www.colorfuldays.org/program/fix_update_index_onnexus/ 下载这个文件http://repo1.maven.org/maven2/.index/nexus-maven-repository-index.zip真困难啊,本地幸亏有apache 在上个周五在公司的一台服务器上用nexus搭建了maven r

使用Python解决Cx_Oracle查询时UnicodeDecodeError的问题

本文和大家分享的主要是使用python语言解决Cx_Oracle查询时UnicodeDecodeError的问题方法步骤,一起来看看吧,希望对大家有所帮助. 近期在项目中,要对1张100多万条记录的表进行查询,然后进行一些数据的统计,但是在这个过程中,发现只查询出来几条数据就出现了UnicodeDecodeError了. 在这里,我们使用sqlalchemy库进行查询,其内部还是Cx_Oracle来进行对应的操作,使用的Python版本为3.5.0,宿主系统为Windows 2008 Serve

使用 springmvc请求 返回 字符串时 ,中文出现乱码

@RequestMapping(value="/askQuestion" ,method = RequestMethod.GET , produces = {"application/json,charset=UTF-8"}) @ResponseBody public String askQuestion(@RequestParam(value="content",required=true)String content, 返回 string .

Java进阶(四)Java反射TypeToken解决泛型运行时类型擦除的问题解决

在开发时,遇到了下面这条语句,不懂,然习之. private List<MyZhuiHaoDetailModel> listLottery = new ArrayList<MyZhuiHaoDetailModel>(); Gson gson=new Gson(); JSONObject object=new JSONObject(callbackValue); listLottery =  gson.fromJson(object.getString("lists&quo

使用json-lib转换对象为字符串时的特殊处理

使用json-lib转换对象为字符串时的特殊处理,如果属性名为"class", "declaringClass", "metaClass"只的一个 转换结果中不会包含该属性,示例     public void test() {         Map map = new HashMap();          map.put( "class", "json" );                    J