前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >mysql索引是什么 优点和缺点_MySQL索引优缺点、使用原则及种类介绍「建议收藏」

mysql索引是什么 优点和缺点_MySQL索引优缺点、使用原则及种类介绍「建议收藏」

作者头像
全栈程序员站长
发布2022-09-01 16:04:33
5470
发布2022-09-01 16:04:33
举报

大家好,又见面了,我是你们的朋友全栈君。

一、索引简介

1、索引简介

索引(Index)是帮助MySQL高效获取数据的数据结构。

在MySQL中,索引属于存储引擎级别的概念,不同存储引擎对索引的实现方式是不同的。MyISAM和InnoDB存储引擎只支持BTREE索引,MEMORY/HEAP存储引擎支持HASH和BTREE索引。

2、索引的优点

A、提高数据检索效率,降低数据库的IO成本。

B、通过索引对数据进行排序,降低数据排序的成本降低了CPU的消耗。

C、大大加快数据的查询数据。

3、索引的缺点

A、创建索引和维护索引要耗费时间,并且随着数据量的增加所耗费的时间也会增加

B、索引也需要占空间,我们知道数据表中的数据也会有最大上线设置的,如果我们有大量的索引,索引文件可能会比数据文件更快达到上线值

C、当对表中的数据进行增加、删除、修改时,索引也需要动态的维护,降低了数据的维护速度。

4、索引的使用原则

A、主键自动建立唯一索引

B、频繁作为查询条件的字段应该创建索引

C、查询中与其他表关联的字段,外键关系建立索引

D、频繁更新的字段不适合建立索引,因为每次更新不单单是更新了记录还会更新索引

E、WHERE条件里用不到的字段不创建索引

F、单键/组合索引的选择问题,who?(在高并发下倾向创建组合索引)

G、查询中排序的字段,排序的字段若通过索引去访问将大大提高排序速度

H、查询中统计或者分组字段

不适合使用索引的场合:

A、对经常更新的表就避免对其进行过多的索引,对经常用于查询的字段应该创建索引。

B、数据量小的表最好不要使用索引,由于数据较少,可能查询全部数据花费的时间比遍历索引的时间还要短,索引就可能不会产生优化效果。

C、在不同值少的列上不要建立索引,比如在学生表的”性别”字段上只有男,女两个不同值。在一个不同值较多的列可以建立索引。

二、索引的分类

1、单列索引

单列索引只包含单个列,但一个表中可以有多个单列索引。

A、普通索引

普通索引允许在定义索引的列中插入重复值和空值。

B、唯一索引

索引列中的值必须是唯一的,但是允许为空值。

C、主键索引

主键索引是一种特殊的唯一索引,不允许有空值。

2、复合索引

在表中的多个字段组合上创建的索引,只有在查询条件中使用了组合的多个字段的左边字段时,索引才会被使用,使用复合索引时遵循最左前缀集合。

3、全文索引

全文索引,只有MyISAM存储引擎支持,只能在CHAR、VARCHAR、TEXT类型字段上使用全文索引。

全文索引主要用来查找文本中的关键字,而不是直接与索引中的值相比较。在数据量较大时候,先将数据放入一个没有全文索引的表中,然后再用CREATE index创建fulltext索引,要比先为一张表建立fulltext然后再将数据写入的速度快很多。

4、空间索引

空间索引是对空间数据类型的字段建立的索引,MySQL中的空间数据类型有四种:GEOMETRY、POINT、LINESTRING、POLYGON。

在创建空间索引时,使用SPATIAL关键字。

空间索引必须使用MyISAM存储引擎,并且空间索引的字段必须为非空。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/141298.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年5月2,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档