如何创建合适的索引

一、为什么数据库一定要有主键

前提:主键应该为一个对业务无意义、一个有序递增的int或number型字段

1、 可以利用主键字段在数据底层存储上能有序的存储,能有效防止底层存储在DML时底层数据的可能存在迁移情况(行迁移、行连接等),影响底层数据存储上空间和性能的严重损耗

2、利用主键能够快速定位和update、delete快速更新或删除

3、能够提高OGG的快速同步和数据一致性保障

 

二、什么样的字段一定要创建索引

1、表与表之间经常join的字段

2、经常在where条件中列

3、复合索引创建指引:当where条件中出现多个条件列的时候,应该按照重复值越低且符合大部分业务场景查询的列作为前导列,减少数据的回表,直接能从索引中返回要的数据

      比如:where idcard_no ='111111111'  and update_time=trunc(sysdate)   

             idcard_no为个人身份证,该字段几乎为唯一,重复值很低,可以作为复合索引的前导列

             update_time为更新时间,该字段会存储非常多的重复值,可以和idcard_no结合创建成复合索引

 

三、什么样的字段一定不能建立成索引

1、基数很低的列(比如性别,type等重复值很高的列)

2、更新频繁但检索不频繁的列

3、BLOB/TEXT等长内容列

4、很少用于检索的列

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Nick说说前后端

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值