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

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

索引的优点
通过创建索引,可以保证数据库中每一条数据的唯一性

可以大大提高查询的效率

可以加速表与表之间的连接

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

总结:查询速度快

索引的缺点
创建索引和维护索引需要时间,而且数据量越大时间越长

创建索引占用磁盘空间,如有大量索引,可能比数据文件更快达到最大文件尺寸

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

总结:维护效率低

索引的分类
普通索引(Normal): 基本索引类型,允许在定义索引的列里插入空值或重复值。
唯一索引(Unique): 索引列值必须唯一,但允许有空值。如果是组合索引,则列值的组合必须唯一。主键索引是一种特殊的唯一索引,不允许有空值。
单列索引: 只包含一个列的索引,一个表中可以有多个。
组合索引: 包含多个列的索引,查询条件包含这些列的最左边的字段的时候,索引就会被引用,遵循最左缀原则。
全文索引(Full Text): 在定义的值中支持全文查找,允许空值和重复值,可以在CHAR,VARCHAR或者TEXT字段类型上创建,仅支持MyISAM存储引擎。
空间索引: 针对空间数据做的索引,支持的数据类型有4种,分别是GEOMETRY,POINT,LINESTRING和POLYGON。创建空间索引的列必须声明为非空值(NOT NULL),仅支持MyISAM存储引擎。
索引设计原则
不是越多越好

常更新的表越少越好

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

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

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

频繁进行排序或分组的列(group by或者是order by)可以建立索引,提高搜索速度

经常用于查询条件的字段应该建立索引

总结:够用就好!
--------------------- 
作者:牛猿cee 
来源:CSDN 
原文:https://blog.csdn.net/weixin_41469440/article/details/95879229 
版权声明:本文为博主原创文章,转载请附上博文链接!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值