数据库学习实录——索引的使用

4 篇文章 0 订阅

数据库学习实录


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

适合创建索引的情况

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

 表中字段的唯一约束,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代替。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值