数据库索引_创建与使用规则

目录

创建索引的要求:

复合索引的建立以及最左匹配原则

唯一索引 和 主键的区别?

 

创建索引的要求:

一、创建索引之前需要进行调研和协调
1、索引增加了数据修改时候的服务器开销。索引在提高select的效率的同时会降低update和insert,delete的效率。索引存储于自平衡的搜索树上,每当新增或者减少数据以后,搜索树就会自动进行旋转,至于新的平衡态。在数据库中,索引的重新调整,是有数据库自动完成的,具有一定的服务器开销。

2、索引占用物理空间 (索引基于Lucene按照一定方式写在本地磁盘)

所以索引在提高性能的同时也需要付出代价,所以创建索引的时候需要去的一个平衡。

二、创建索引的规则
1、对于很少在查询涉及到的列 不创建索引(占用物理空间,增加服务器开销,又无法减少访问效率,增加响应速度)

2、对于重复值比较多的列 不创建索引(SQL是根据表中数据来进行查询优化的,当索引列有大量数据重复时,SQL查询可能不会去利用索引)

3、对于按照范围查询的列 最好建立索引 (可以利用索引已经拍好的顺序,增加响应速度)

4、适当使用复合索引(最左匹配原则),节约时间和空间。

复合索引的建立以及最左匹配原则

复合索引指的是 在多列上建立索引,也叫 组合索引。复合索引在数据库操作期间所需要的开销更小,可以替代多个单个索引。

对于复合索引,在查询使用时,最好将条件顺序按照索引的顺序,这样效率最高。

如果创建了复合索引index(A,B,C),则相当于建立了 index(A),index(A,B),index(A,B,C)三种索引。

  • 至少使用复合索引的第一个索引并用and连接查询条件,可以触发索引
  • 没有第一个索引,不会索引的使用
  • 使用大于/小于的判断不影响索引的使用
  • 使用 or 不会命中索引。

【多个独立索引的使用顺序由数据库的优化器决定】

唯一索引 和 主键的区别?

  • 主键是一种约束,唯一索引只是一种索引
  • 一张表只可以有一个主键,但是可以有多个唯一索引
  • 主键创建后一定包含一个唯一索引
  • 主键不可以为null,但是唯一索引可以
  • 主键可以作为外键,而唯一索引不可以
  • 主键可以产生唯一的聚簇索引,而唯一索引只可以产生非聚簇索引

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值