索引是一种将数据库中单列或者多列的值进行排序的结构。应用索引可以大幅度提高查询的速度。

用户通过索引查询数据,不但可以提高查询速度,也可以降低服务器的负载。用户查询数据时,系统可以不必遍历表中的所有记录,而是查询索引列。

但是,凡事都有双面性。对于依赖关系的子表和附表之间的联合查询时,使用索引可以提高查询速度,并且可以提高整体的系统性能。但是创建索引和维护需要耗费时间,并且该耗费时间与数据量的大小成正比;另外,索引需要占用物理空间,给数据的维护造成很多麻烦。

整体来说,索引可以提高查询的速度,但是会影响用户操作数据库的插入操作。因为向右索引的表中插入记录时,数据库系统会按照索引进行排序。所以,用户可以将索引删除后,插入数据,当数据插入操作完成后可以重新创建索引。

正题:MySQL索引分类

MySQL索引包括普通索引、唯一索引、全文索引、单列索引、多列索引、空间索引

1、普通索引

即不应用任何限制条件的索引,该索引可以在任何数据类型中创建。字段本身的约束条件可以判断其值是否为空或唯一。

2、唯一索引

使用UNIQUE参数可以设置唯一索引。创建该索引时,索引的值必须唯一。主键是一种特殊唯一索引。

3、全文索引

使用FULLTEXT参数可以设置全文索引。全文索引只能创建在CHAR、VARCHAR、TEXT类型的字段上。查询数据量较大的字符串类型字段时,使用全文索引可以提高查询速度。注意:全文索引在默认情况下是对大小写字母不敏感的,可以通过使用二进制对索引的列进行排序以执行大小写敏感的全文索引。MySQL中只有MyISAM存储引擎支持全文索引

4、单列索引

顾名思义,单列索引值对应一个字段的索引。可以包括上述的三种索引方式。应用该索引的条件只需要保证该索引值对应一个字段即可。

5、多列索引

多列索引是在表的多个字段上创建一个索引。该索引只想创建时对应的多个字段,可以通过这几个字段进行查询。要想应用该索引,用户必须使用这些字段中的第一个字段。

6、空间索引

使用SPATIAL参数可以设置控件索引。控件索引只能建立在控件数据类型(LINESTRING、POINT、GEOMETRY等)上,这样可以提高系统获取控件数据的效率。MySQL中只有MyISAM存储引擎支持空间索引,且该字段不能为空值。

(存储引擎部分可以参考文章——常用的mysql存储引擎及其特点)

Mysql索引有哪几种类型相关推荐

  1. MySQL 索引失效的几种类型以及解决方式

    点击下方"Java编程鸭"关注并标星 更多精彩 第一时间直达 索引失效的情况有哪些? 索引列不独立 使用了左模糊 使用 or 查询部分字段没有使用索引 字符串条件没有使用 '' 不 ...

  2. MySQL索引失效的9种情况(针对InnoDB存储引擎)

    前言 MySQL中提高查询性能的最有效的方式之一就是对数据表合理的设计索引,优秀的索引的设计方案很大程度上可以提高查询的性能. 因此,索引对查询的速度有着至关重要的影响. 为了尽量的使优化器用到我们的 ...

  3. Oracle 索引扫描的五种类型

    之前在讨论CBO和RBO的时候提到了索引扫描的几种类型. Oracle Optimizer CBO RBO http://blog.csdn.net/tianlesoftware/archive/20 ...

  4. MySQL 索引失效的 15 种场景!

    背景 无论你是技术大佬,还是刚入行的小白,时不时都会踩到Mysql数据库不走索引的坑.常见的现象就是:明明在字段上添加了索引,但却并未生效. 前些天就遇到一个稍微特殊的场景,同一条SQL语句,在某些参 ...

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

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

  6. 详解MySQL索引失效的几种情况

    MySQL索引是提高查询效率的重要手段.索引失效会导致查询效率下降,甚至全表扫描,影响数据库性能.以下是可能导致MySQL索引失效的情况: 1. 使用or操作符 当where语句中使用or操作符并且o ...

  7. mysql索引失效_导致MySQL索引失效的几种常见写法

    最近一直忙着处理原来老项目遗留的一些SQL优化问题,由于当初表的设计以及字段设计的问题,随着业务的增长,出现了大量的慢SQL,导致MySQL的CPU资源飙升,基于此,给大家简单分享下这些比较使用的易于 ...

  8. MySQL索引失效的几种常见场景

    前言 我们在使用MySQL查询数据的时候,总会遇见没有正确使用到索引的情况. 这里我们列举几种常见的,搜索条件使用了索引列却没有走索引的场景. (以下测试均在MySQL8.0.28中完成,且所有数据均 ...

  9. mysql数据库是下面哪种类型的数据库_SQL数据库 选择哪个类型的数据库?

    下面是代码我买个空间需要选择数据库类型,一种是Mysql5.1一种是Sql2005选择后不能更改不知道选择哪种了望高手解答 下面是代码 我买个空间 需要选择数据库类型,一种是Mysql5.1 一种是S ...

最新文章

  1. 有一个5 * 5的二维数组,保留主对角线上的元素,并使其他元素均为0,要求用函数和子函数完成
  2. 微软亚洲研究院多媒体计算组招聘计算机视觉算法实习生
  3. 借力大数据 物流迈向智能化
  4. php电商交押金的逻辑,PHP高并发下抢购、秒杀功能的超卖问题
  5. 原字体_在包装上玩转字体
  6. Apache 创建虚拟主机目录和设置默认访问页面
  7. 国家开放大学2021春1073法律文书答案
  8. Openresty Nginx 负载均衡
  9. Illustrator 教程,如何在 Illustrator 中变换图稿?
  10. 《数据结构与算法 C语言版》—— 2.2线性表的顺序表示与实现
  11. python storm连接mysql_python ORM storm中的复合外键引用
  12. 三角函数常用公式总结
  13. 基于深度学习的多目标跟踪(MOT)技术一览
  14. 计算机清理垃圾代码,你也可以写代码系列,一键清除系统垃圾文件的代码(超简单)-清除垃圾文件...
  15. php生产环境配置,PHP生产环境配置 - osc_ifi9q17t的个人空间 - OSCHINA - 中文开源技术交流社区...
  16. html可编辑的表格
  17. 马蜂窝裁php换java,php又又又凉凉了吗
  18. 阿里巴巴字体图标的使用
  19. Sql语句--日期函数用法
  20. element表格固定某一行_ElementUI Table 首行固定

热门文章

  1. 【最新】iOS App上架AppStore 教程 (Part 二)
  2. win10登录选项没有PIN,设置了PIN仍然在系统的登录选项中显示[添加],PIN无法使用
  3. U盘写保护无法格式化
  4. 当代年轻人该如何跨越阶层?
  5. 解决google打开Github慢的问题,亲测有效
  6. java向kafka推送数据_Java kafka消息的发送与接收
  7. CentOS7安装Docker-Registry
  8. TIPOP 出货单单头
  9. canvas画任意角度的扇形,弧形,及扇形弧形填纯色渐变色
  10. 赛车游戏中赛车的物理建模