0.表结构如下:(包含两个索引)

Create Table: CREATE TABLE `user` (
`userID` varchar(40) NOT NULL,
`userCode` varchar(20) DEFAULT NULL,
`userName` varchar(25) DEFAULT NULL,
`password` varchar(20) DEFAULT NULL,
`userSort` varchar(30) DEFAULT NULL,
`userStuTeaNum` varchar(50) DEFAULT NULL,
`userUnitName` varchar(30) DEFAULT NULL,
`userUnitNum` varchar(30) DEFAULT NULL,
`isUse` varchar(2) DEFAULT NULL,
`remark1` varchar(20) DEFAULT NULL,
PRIMARY KEY (`userID`),
UNIQUE KEY `userCodeIndex` (`userCode`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8

前提是会使用explain分析SQL语句:

2.强制走索引

(1)直接查询使用的是userCodeIndex

mysql> EXPLAIN SELECT userID FROM USER\G
*************************** 1. row ***************************
id: 1
select_type: SIMPLE
table: USER
partitions: NULL
type: index
possible_keys: NULL
key: userCodeIndex
key_len: 63
ref: NULL
rows: 3
filtered: 100.00
Extra: Using index
1 row in set, 1 warning (0.00 sec)

(2)强制使用主键索引

语法:

SELECT userID FROM USER FORCE INDEX(PRIMARY);

注意:INDEX(indexName)里面的参数是index的名称,而不是列名,如果不知道index名称可以通过下列方式查询:

mysql> show index from tblname;

mysql> show keys from tblname;

顺便说一句:key和index的区别:key有两个作用,一是约束字段,二是辅助查询(具备constraint和index的意义)

                index只是辅助查询,它创建时会在另外的表空间(mysql中的innodb表空间)以一个类似目录的结构存储。

例如:强制使用userCodeIndex

mysql> EXPLAIN SELECT userID FROM USER FORCE INDEX(PRIMARY)\G
*************************** 1. row ***************************
id: 1
select_type: SIMPLE
table: USER
partitions: NULL
type: index
possible_keys: NULL
key: PRIMARY
key_len: 122
ref: NULL
rows: 3
filtered: 100.00
Extra: Using index
1 row in set, 1 warning (0.00 sec)

3.强制不走缓存

SELECT  SQL_NO_CACHE  * FROM USER 

在这里只是做记录,项目中还没有遇到这种需求。。。。。。。。。。。。。。。。。。。。。。。

MySQL实现强制查询走索引和强制查询不缓存的更多相关文章

  1. 强制MySQL查询走索引和强制查询不缓存

    有些情况下,表中创建了索引但是EXPLAIN的查看执行计划的时候发现并没有走索引.是因为优化器认为该语句不使用索引效率更好. 当然也可以强制走索引.类似: SELECT uid,uname FROM ...

  2. 【MySQL 原理分析】之 Explain & Trace 深入分析全模糊查询走索引的原理

    一.背景 今天,交流群有一位同学提出了一个问题.看下图: 之后,这位同学确实也发了一个全模糊查询走索引的例子: 到这我们可以发现,这两个sql最大的区别是:一个是查询全字段(select *),而一个 ...

  3. MySQL学习-MySQL内置功能_索引与慢查询

    1.索引基础 1.1 介绍 (1.)为何要有索引? 一般的应用系统,读写比例在10:1左右,而且插入操作和一般的更新操作很少出现性能问题,在生产环境中,我们遇到最多的,也是最容易出问题的,还是一些复杂 ...

  4. Oracle中查询走索引的情况

    1.对返回的行无任何限定条件,即没有where子句 2.未对数据表与任何索引主列相对应的行限定条件例如:在City-State-Zip列创建了三列复合索引,那么仅对State列限定条件不能使用这个索引 ...

  5. oracle数据库使用hint来让模糊查询走索引

    在没有创建数据直方图之前,查询优化器是cbo,可能不会选择代价最低(效率最高)的方式查询. 先创建表 --日语假名表 CREATE TABLE JAPANESE_SOUNDMARK ( ID INTE ...

  6. mysql中关于关联索引的问题——对a,b,c三个字段建立联合索引,那么查询时使用其中的2个作为查询条件,是否还会走索引?

    情况描述:在MySQL的user表中,对a,b,c三个字段建立联合索引,那么查询时使用其中的2个作为查询条件,是否还会走索引? 根据查询字段的位置不同来决定,如查询a,     a,b    a,b, ...

  7. MySQL如何选择合适的索引

    先来看一个栗子 EXPLAIN select * from employees where name > 'a'; 如果用name索引查找数据需要遍历name字段联合索引树,然后根据遍历出来的主 ...

  8. 【开发总结】order by 为什么没有走索引?

    1.  现象 表结构如下 CREATE TABLE `ACT_HI_INST` ( `ID` varchar(64) COLLATE utf8_bin NOT NULL COMMENT '主键', ` ...

  9. 《MySQL面试小抄》索引失效场景验证

    我是肥哥,一名不专业的面试官! 我是囧囧,一名积极找工作的小菜鸟! 囧囧表示:小白面试最怕的就是面试官问的知识点太笼统,自己无法快速定位到关键问题点!!! 本期主要面试考点 面试官考点之什么情况下会索 ...

随机推荐

  1. 一个java高级工程师的进阶

    宏观方面 一. JAVA.要想成为JAVA(高级)工程师肯定要学习JAVA.一般的程序员或许只需知道一些JAVA的语法结构就可以应付了.但要成为JAVA(高级) 工程师,您要对JAVA做比较深入的研究 ...

  2. k序列和

    二分答案是参数搜索的一个改善.是这样,对于一个问题,如果它的答案具有单调性质(即如果i不可行,那么大于i的解都不可行,而小于i的解有可能可行),进而用二分的方法枚举答案,再判断答案是否可行,直到求到符 ...

  3. Day22-Django之信号

    1. 如果往数据库中增加数据的时候,希望生成一个日志.在数据保存之前以及保存之后. Django中提供了“信号调度”,用于在框架执行操作时解耦.通俗来讲,就是一些动作发生的时候,信号允许特定的发送者去 ...

  4. HNOI2013旅行

    一道欺负我智商的题... 本来想打单调队列优化dp的,结果看到算法标签就点了此题 洛谷题面 首先你要理解题意,蒟蒻理解了好久.它就是说,给你一个由1和-1组成的数列,让你分成m段,并让这m段区间和最大 ...

  5. 一种KEIL中定义过的变量在使用中提示未定义的情况

    [环境] > KEIL5.25 > win10 > @2018-4-23 [问题] 头文件互包含导致的错误(使用了另一文件的类型定义) 文件<fileA.h> <f ...

  6. 20135319zl软件破解报告

    编写一个简单的C程序.要求只有输入a,才能通过. 现在,使用objdump –d po反汇编这个程序 找到main函数,可以发现movb $0x61,0x1f(%esp)这句语句中是将字符a(对应0x ...

  7. 东北育才 NOIP模拟赛第1场

    终于400了.这套题很鬼畜.两道贪心. GRACE sort过后,不能直接统计,本人毫无多想,相同的直接放在一起.结果太多人AC. SUM sigma+异或和(可使用前缀和处理),本人毫无考虑乱MOD ...

  8. Could not update Activiti database schema: unknown version from database: '5.20.0.1'

    转: Could not update Activiti database schema: unknown version from database: '5.20.0.1' 2017年11月22日 ...

  9. python抓取

    我要抓取奥巴马每周的演讲内容http://www.putclub.com/html/radio/VOA/presidentspeech/index.html 如果手动提取,就需要一个个点进去,再复制保 ...

  10. 逻辑回归原理_挑战者飞船事故和乳腺癌案例_Python和R_信用评分卡(AAA推荐)

    sklearn实战-乳腺癌细胞数据挖掘(博客主亲自录制视频教程) https://study.163.com/course/introduction.htm?courseId=1005269003&a ...