首页 > 数据库 >MySQL索引

MySQL索引

时间:2022-09-29 15:14:36浏览次数:87  
标签:使用 左匹配 索引 查找 mysql MySQL

什么是索引?索引类似于清华字典上的拼音查找页和部首查找页,通过索引我们能够快速的定位到需要查找的汉字。而索引实际上也是一张表,只不过这张表记录了key以及定位记录的字段。
MySQL通过索引能够快速的找到相关的数据,而如果没有索引,MySQL只能通过全表扫描查询数据,这回带来非常大的开销。

那么MySQL如何使用索引呢?

主要包含以下情况:

  1. 查找符合Where条件的数据。
  2. 当有多个索引可以选择时,MySQL选择其中索引选择性最高的索引。
  3. 当表具备复合索引时,MySQL遵循最左匹配原则,使用索引进行数据的检索。
  4. 当存在join操作从其他表查找数据时,MySQL可以使用声明相同类型和相同大小的字段上的索引进行查找。
  5. 当使用MIN和MAX操作时,MySQL使用单一的索引去查找MIN或MAX
  6. 排序或分组时,如果被排序或分组的字段复合最左匹配原则或者是一个可使用的索引时。
  7. 当查询结果不需要查找原始记录时(索引覆盖)。

MySQL索引结构

大部分MySQL索引,包括主键索引、普通索引、唯一索引以及全文索引使用B+树存储。空间数据使用R树作为索引,MERMORY存储引擎同时支持使用Hash索引。

B+树

  • 回表
  • 索引覆盖
  • 索引下推
  • 最左匹配
  • MRR
  • FIC
  • 前缀索引
  • 索引的选择性

索引失效

R树

Hash索引

参考连接

标签:使用,左匹配,索引,查找,mysql,MySQL
From: https://www.cnblogs.com/houlixie/p/16740743.html

相关文章

  • kettle 8.3 连接mysql8.0.30 的入坑体验
    写这个东西主要是想吐槽为主,真的无语了。kettle是java写的java版权是oracle的。mysql是Oracle的。   吐槽:一般来说,在kettle中新建mysql连接时......
  • MySQL:The used SELECT statements have a different number of columns
    我们在SQL语句中使用了 UNION 连接两张表时,查询字段数量不一致导致......
  • 一文搞懂MySQL客户端/服务器运行架构
    前言之前对MySQL的认知只限于会写些SQL,本篇开始进行对MySQL进行深入的学习,记录和整理下自己对MySQL不熟悉的地方。如果有需要可以关注我的专栏一起学习,共同进步!关于mysql的......
  • mysql grant
    目录mysqlgrant基本语法基本权限设置高级权限、细分权限查询权限回收权限授予权限mysqlgrant基本语法grant权限on数据库对象to用户identifiedby密码用户一......
  • Oracle 12C R2-新特性---增强索引压缩
    高级索引压缩可以很好的应用于所有支持的索引。使用高级索引压缩创建索引可以减少所有唯一和非唯一索引的大小,并显着提高压缩率,占用更少的空间,同时仍然可以有效地访问索引。......
  • MySQL 8新特性--角色
    3.角色从MySQL8.0开始支持角色,和Oracle中的角色一样,角色就是权限的集合。MySQL中当前支持的关于角色的相关操作和变量:CREATEROLE和DROPROLEGRANT和REVOKESHOWGRANTSSET......
  • MySQL 8新特性--原子DDL
    ###1.AtomicDDL—原子DDL从MySQL8.0开始支持原子DDL,原子DDL语句就是将和DDL操作关联的数据字典更新,存储引擎内部操作和二进制日志写入操作组合到单个,原子事务中。即使数据......
  • mysql
    参考链接:https://blog.csdn.net/guoqi_666/article/details/122484535sql优化技巧:   1避免使用select*很多时候,我们写sql语句时,为了方便,喜欢直接使用select*,......
  • MYSQL小记,SQL查询,如果有更新时间则优先按更新时间倒序,没有则按创建时间倒序
    selectnow()fromdualORDERBYIFNULL(update_date,create_date)DESCIFNULL函数说明IFNULL(expr1,expr2)如果expr1不是NULL,IFNULL()返回expr1,否则它返回expr......
  • MySQL--SQL基础语句--2022年9月28日
    第一节  数据库相关概念 第二节  MySQL安装及启动1、MySQL安装及启动自行查看文档,这里不多笔记2、关系型数据库是什么 3、数......