MYSQL在创建索引后对索引的使用方式分为两种:其一,由数据库的查询优化器自动判断是否使用索引;其二,用户可在写SQL语句时强制使用索引。

MYSQL在创建索引后对索引的使用方式分为两种:

1 由数据库的查询优化器自动判断是否使用索引;

2 用户可在写SQL语句时强制使用索引

下面就两种索引使用方式进行说明

第一种,自动使用索引。

数据库在收到查询语句后会查看where语句后面的查询条件,同时查看在表上面有哪些索引,然后根据查询条件和索引进行匹配。

查询条件和索引的匹配包括查询字段与索引字段的匹配和查询类型和索引类型的匹配。前者很好理解,就是查询条件的属性上要建有索引,后者则是说查询条件必须能够使用索引,比如等值判断和范围查询可以使用B+树索引,而hash索引只能适用于等值判断。

在找到与查询条件匹配的索引后,就是进行代价估计来决定是否使用索引,代价估计主要根据要访问的就数量,一般来说如果通过索引访问的记录数量占全表记录数量15%以上,则不会使用索引而是使用全表扫描,因为此时使用索引的代价更大。在大多数情况下使用索引是会提高效率的。

经过优化器的判断,最终会决定是否使用索引

第二种,强制使用索引,主要是通过SQL语句实现的

select * from table force index(PRI) limit 2;(强制使用主键)

select * from table force index(ziduan1_index) limit 2;(强制使用索引"ziduan1_index")

select * from table force index(PRI,ziduan1_index) limit 2;(强制使用索引"PRI和ziduan1_index")

也可以禁止索引的使用

select * from table ignore index(PRI) limit 2;(禁止使用主键)

select * from table ignore index(ziduan1_index) limit 2;(禁止使用索引"ziduan1_index")

select * from table ignore index(PRI,ziduan1_index) limit 2;(禁止使用索引"PRI,ziduan1_index")

mysql索引是自动使用吗_mysql索引是自动使用吗?相关推荐

  1. mysql listagg函数 长度过长_MySQL索引是什么?怎么做?

    首先,MySql 支持多种存储引擎,最为常用的是 innodb,MyIsam 也需要了解,其他的存储引擎包括 Archive 等等都要有个印象. 各种存储引擎对于索引的支持也不相同,总结下来,MySq ...

  2. mysql索引详细介绍简书_MySql索引详解

    image 常见索引类型(实现层面) 索引种类(应用层面) 聚簇索引与非聚簇索引 覆盖索引 最佳索引使用策略 1.常见索引类型(实现层面) 首先不谈Mysql怎么实现索引的,先马后炮一下,如果让我们来 ...

  3. mysql索引详细介绍简书_Mysql索引介绍

    数据库索引,是数据库管理系统中一个排序的数据结构,以协助快速查询.更新数据库表中数据.索引的实现通常使用B树及其变种B+树. 在数据之外,数据库系统还维护着满足特定查找算法的数据结构,这些数据结构以某 ...

  4. mysql索引久了需要重新_mysql索引更新要多久

    MySQL索引的建立对于MySQL的高效运行是很重要的,索引可以大大提高MySQL的检索速度. 打个比方,如果合理的设计且使用索引的MySQL是一辆兰博基尼的话,那么没有设计和使用索引的MySQL就是 ...

  5. mysql索引默认是什么意思_MySQL索引的理解

    一.索引是什么? 索引是帮助MySQL高效获取数据的数据结构. 二.索引能干什么? 索引非常关键,尤其是当表中的数据量越来越大时,索引对于性能的影响愈发重要.索引能够轻易将查询性能提高好几个数量级,总 ...

  6. mysql索引优化有几种_mysql索引优化

    索引类型 从物理存储角度上,索引可以分为聚集索引和非聚集索引. 1.聚集索引(Clustered Index) 聚集索引决定数据在磁盘上的物理排序,一个表只能有一个聚集索引. 2.非聚集索引(Non- ...

  7. 假设mysql数据表t1有字段_Mysql 索引及优化

    什么是索引 索引是什么?相信大家都用过字典.你是怎么从厚厚的新华字典中找到你需要找到的那个字的呢?又是怎么从一本书中快速定位到你需要的章节? 我们都是通过书中的目录,然后根据目录中的页码定位到我们要的 ...

  8. mysql索引名字可以重复吗_MySql索引

    索引简介 索引是一个单独的.物理的数据库结构,它是某个表中一列或若干列值的集合与相应的指向表中数据的指针组成清单.索引的作用相当于书的目录,可以根据目录中的页码快速定位到所需的内容.索引是一种使记录有 ...

  9. 建立索引和主外约束_Mysql索引原理

    阅读文本大概需要3分钟. 作者:菜菜聊架构来源:https://www.cnblogs.com/caicz/p/11009507.html 一.为什么要有索引 索引在MySQL中也叫做"键& ...

最新文章

  1. vs2015添加管理员权限
  2. csv data set config使用介绍
  3. 运行pip list报错:Fatal error in launcher: Unable to create process using...python\Scripts\pip.exe list
  4. 跟燕十八学习PHP-第十九天-热身项目完善
  5. 网络与IO知识扫盲(七):仿照Netty工作架构图,手写多路复用模型
  6. 周长相等的正方形面积一定相等_万萍:画图研究图形与几何问题—怎样围面积更大(四下)...
  7. C#------如何判断输入的是否为纯数字
  8. 汇编写java模块_java – maven汇编插件moduleset源指令不包括任何文件,不符合附带的模块...
  9. css现在还用浮动吗,css3-9 css中的浮动怎么使用
  10. [唐胡璐]VBS技巧 - Find a File Recursively(递归查找文件)
  11. 网络安装ubuntu操作系统
  12. 世界名著100部简介
  13. Hash函数经典用法
  14. 【概念】数据仓库和数仓建模
  15. 学校计算机一级上网题,考试经验之谈:计算机一级考试上网题怎么操作?
  16. 3dmax中如何赋予材质
  17. 归并排序(JAVA版)
  18. Win10连接WiFi显示无internet,安全 却可以正常上网(转)
  19. 微服务进阶避坑指南 | 技术头条
  20. 解决:is not eligible for getting processed by all BeanPostProcessors

热门文章

  1. Arduino IDE 配置文件
  2. 【HTML学习】——HTML常见标签属性和方法介绍
  3. java delegate怎么写_美团面试官:你说你们公司的Mybatis分页插件是你写的,给我说说它的设计原理?...
  4. Face Alignment by 3000 FPS系列学习总结(一)
  5. 第5章 Python 数字图像处理(DIP) - 图像复原与重建12 - 空间滤波 - 使用频率域滤波降低周期噪声 - 陷波滤波、最优陷波滤波
  6. 第二十二篇:Spring简单定时任务
  7. 论文笔记——Deep Model Compression Distilling Knowledge from Noisy Teachers
  8. Amoeba for MySQL
  9. 转载--C语言:浮点数在内存中的表示
  10. 对使用CodeSmith模板生成NHibernate的代码的分析