前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MySQL索引篇,索引的优缺点,分类及设计原则

MySQL索引篇,索引的优缺点,分类及设计原则

作者头像
Mandy的名字被占用了
发布2019-08-09 17:27:49
1.9K0
发布2019-08-09 17:27:49
举报

索引在数据库中的作用是快速找出某个列中一个特定值的行,不使用索引的话,MySQL必须从第一条记录遍历到相关行,表越大,花费的时间越多,但是如果有索引,就能快速的到达某个位置去搜索数据文件,索引对于优化数据库查询速度有着不可替代的作用,本文主要给大家讲解一下MySQL数据库中,索引的优缺点,分类以及设计原则。

索引的优点

1.通过创建唯一索引,可以保证数据库每一行数据的唯一性

2.可以大大提高查询速度

3.可以加速表与表的连接

4.可以显著的减少查询中分组和排序的时间。

索引的缺点

1.创建索引和维护索引需要时间,而且数据量越大时间越长。

2.创建索引需要占据磁盘的空间,如果有大量的索引,可能比数据文件更快达到最大文件尺寸。

3.当对表中的数据进行增加,修改,删除的时候,索引也要同时进行维护,降低了数据的维护速度。

索引的分类

1.普通索引(Normal):基本索引类型,允许在定义索引的列里插入空值或重复值。

2.唯一索引(Unique):索引列值必须唯一,但允许有空值。如果是组合索引,则列值的组合必须唯一。主键索引是一种特殊的唯一索引,不允许有空值。

3.单列索引:只包含一个列的索引,一个表中可以有多个。

4.组合索引:包含多个列的索引,查询条件包含这些列的最左边的字段的时候,索引就会被引用,遵循最左缀原则。

5.全文索引(Full Text):在定义的值中支持全文查找,允许空值和重复值,可以在CHAR,VARCHAR或者TEXT字段类型上创建,仅支持MyISAM存储引擎。

6.空间索引:针对空间数据做的索引,支持的数据类型有4种,分别是GEOMETRY,POINT,LINESTRING和POLYGON。创建空间索引的列必须声明为非空值(NOT NULL),仅支持MyISAM存储引擎。

索引的设计原则

1.不是越多越好。

2.常更新的表越少越好。

3.数据量小的表最好不要建立索引。

4.不同的值比较多的列才需要建立索引。

5.某种数据本身具备唯一性的时候,建立唯一性索引,可以保证定义的列的数据完整性,以提高查询熟度。

6.频繁进行排序或分组的列(group by或者是order by)可以建立索引,提高搜索速度7.经常用于查询条件的字段应该建立索。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-08-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 卡二条的技术圈 微信公众号,前往查看

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

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

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