什么时候适合建索引?建索引要注意什么?

表中的主关键字自动建立唯一索引;

表中字段的唯一约束,Oracle利用索引来保证数据的完整性;

直接条件查询的字段,在sql中直接用于条件约束的字段;

查询中排序的字段,排序字段通过索引会提高效率;

查询中与其他表建立关联的字段,外键关联字段;

查询中统计或分组统计的字段。

以下情况需注意不适合建索引:

表记录太少不适合建索引,首先要访问索引表然后通过索引访问数据表,一般索引表和数据表在不同的数据块中;

经常插入、删除、修改的表在查询允许的情况下尽量少建索引;

数据重复且分布平均的字段。

建索引还需注意:

1)    考虑表空间和磁盘空间是否充足,索引也是一种数据;

2)    在对表加索引的时候会对表加锁,因此要在业务空闲的时候;

3)    添加时避免过度索引,即数据重复且分布平均的字段可以不加;

4)    mysql每次查询只能使用一个索引,如果将单个索引条件聚合,以最佳左前缀方式创建复合索引性能更加;

5)    索引字段不能有NULL,如果有NULL值将不会包含在索引中;

6)    使用短索引,一个大的char可以指定前几位索引;

7)    排序索引时,如果where条件包含了索引排序order的时候不在使用了,如果order多个字段可以建立复合索引;

8)    like语句操作索引,一般不赞成,”%aaa%”不会使用索引,”aaa%”可以使用;

9)    不使用NOT IN和操作,他不会使用索引并且是全表扫描操作,可以用 NOT EXISTS代替。

转载于:https://my.oschina.net/u/242479/blog/1553371

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值