MySQL索引

索引(index)

        我们可以通过索引来加快查询的速度。

⭐建立索引的最优情况:

1、数据量较大,且经常对这些列进行条件查询。

2、该数据库表的插入操作,及对这些列的修改操作频率较低。

3、索引会占用额外的磁盘空间。

索引的代价:

1、占用更多的空间。

2、可能降低插入、删除、修改的速度。

索引的语句:

查看索引:

show index from 表名;

创建索引:

create index 索引名字 on 表名(列名);

⭐当创建表时,主键、外键、unique会自动生成索引。

删除索引:

drop index 索引名字 on 表名;

⭐只有手动创建的索引才可以删除。

例子创建:

我们可以创建一个表,主键是id

查看表索引

show index from test;

这个形式就是索引创建成功了,如果我们想要删除主键自动生成的索引,就会如下:

删除索引

drop index 索引名字 on 表名;

创建索引

如果我们要把classid设置为索引,则如下

create index 索引名字 on 表名(列名);

(索引名字是自己想起的别名)

删除索引2:

因为class_ID是我们手动创建的,所以我们删除如下

drop index 索引名字 on 表名;

这样我们就是删除成功了。

数据库引用的索引

⭐⭐数据库引用的索引是一个改进的树形结构,B+数(N叉搜索数)。

⭐索引是针对某个表的指定列设置的。

问题

我们在创建和删除索引时,会对数据库可能造成很大的损坏,所以当一个数据量很大的表想要创建/删除索引时怎么做呢?

答:

        我们可以拿一个新的机器,创建空表,创建索引,把旧的机器上面的数据导入到新的机器中,使用新机器替代旧机器。

B+树:

数据库引用的索引就是一个B+树。

1、B+树是一个N叉搜索树,一个节点上存在M个key,划出N个区间。

2、每个节点上N个key,最后一个相当于当前子树的最大值。

3、父亲节点上的每个key都会以最大值的身份在子节点相应区间存在。

      叶子节点这一层,包含整个树的数据全集。

4、B+树会使用链表,把叶子节点串起来。

B+树的特点就是:查询的速度更稳定。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值