mysql数据库索引的作用_MySQL 关系型数据库服务索引功能介绍 | IT工程师的生活足迹...

MySQL 数据库索引介绍

在数据之外,数据库系统还维护着满足特定查找算法的数据结构(索引),这些数据结构以某种方式引用(指向)数据,这样就可以在这些数据结构上实现高级查找算法。

1、存储格式:按照特定的数据结构

2、存储数据:数据存储位置的指针

3、特点:有一定的序列

为表设置索引要付出代价的:

一、增加了数据库的存储空间,

二、在插入和修改数据时要花费较多的时间(因为索引也要随之变动)。

一、数据库索引示例

28e37655f14e00d83d1591ab783fe61b.png

上图展示了一种可能的索引方式。

左边是数据表,一共有两列七条记录,最左边的是数据记录的物理地址(注意逻辑上相邻的记录在磁盘上也并不是一定物理相邻的)。

为了加快Col2的查找,可以维护一个右边所示的二叉查找树,每个节点分别包含索引键值和一个指向对应数据记录物理地址的指针,这样就可以运用二叉查找在O(log2n)的复杂度内获取到相应数据。

1.1、创建索引可以大大提高系统的性能

第一,通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。

第二,可以大大加快数据的检索速度,这也是创建索引的最主要的原因。

第三,可以加速表和表之间的连接,特别是在实现数据的参考完整性方面特别有意义。

第四,在使用分组和排序子句进行数据检索时,同样可以显著减少查询中分组和排序的时间。

第五,通过使用索引,可以在查询的过程中,使用优化隐藏器,提高系统的性能。

1.2、另外增加索引也有许多不利的方面

第一,创建索引和维护索引要耗费时间,这种时间随着数据量的增加而增加。

第二,索引需要占物理空间,除了数据表占数据空间之外,每一个索引还要占一定的物理空间,如果要建立聚簇索引,那么需要的空间就会更大。

第三,当对表中的数据进行增加、删除和修改的时候,索引也要动态的维护,这样就降低了数据的维护速度。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值