记一些现阶段对于索引的有关认识

在一些面试的场景中,我们常会被问到索引的创建原则,那么索引应该如何创建呢?

 

今天我们就写一篇总结,并结合一些网上其他博主的观点,进行一个知识的区块汇总

(1)创建原则

举个例子,比方说客户的手机花费剩余情况这个数据表,怎么建索引,以什么为索引

常理来讲,这个表应该大致包含以下几个列:IdentifyID、PhoneNum、Balance

那么在这个表中就应该找IdentifyID或者PhoneNum作为索引,当然PhoneNum

肯定是唯一的,而且是不会发生变化的,所以最好的选择是以PhoneNum作为创建索引的列,它不会说因为数据的更新而更新了,那样的话,一直变那索引表也会变,所以这个肯定是不行的大兄弟。其实一般的时候数据量不是特别大,基本上建不建索引差距真的是不大。索引虽然说提高了数据的访问速度,但同时也增加了插入、更新和删除操作的处理时间。

 

此外我们在创建索引时可以遵循下面的一般性原则:

(1)为经常出现在关键字order by、group by、distinct后面的字段,建立索引。

在这些字段上建立索引,可以有效地避免排序操作。如果建立的是复合索引,索引的字段顺序要和这些关键字后面的字段顺序一致,否则索引不会被使用。

(2)在union等集合操作的结果集字段上,建立索引。其建立索引的目的同上。

(3)为经常用作查询选择的字段,建立索引。

(4)在经常用作表连接的属性上,建立索引。

(5)考虑使用索引覆盖。对数据很少被更新的表,如果用户经常只查询其中的几个字段,可以考虑在这几个字段上建立索引,从而将表的扫描改变为索引的扫描。

 

(2)创建方法

以mysql中为例

 命令行-自查

 

常用的两种索引创建方式:

(1)CREATE INDEX index_name ON table_1(filed_1);

(2)ALTER TABLE table_1 ADD INDEX(field_1);

区别

1.使用CREATE创建索引必须提供索引名称,而ALTER方式可以不提供则MySQL会自动为你创建索引名称,如果想使用ALTER方式自定义创建索引名称,可以类似如下SQL语句:

1.mysql> ALTER TABLE table_1 ADD INDEX index_name(field_1,field_2);

2.CREATE 方式创建索引,一次只能创建一个索引。ALTER方式可以一次创建多个索引,类似如下SQL语句:

mysql> ALTER TABLE table_1 ADD PRIMARY KEY(id), ADD INDEX index_name_1(field_1,field_2), ADD IND

 

 web ui client 创建

 

里面有个设计表,就可以建立索引了

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值