博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
什么时候适合建索引?建索引要注意什么?
阅读量:6077 次
发布时间:2019-06-20

本文共 667 字,大约阅读时间需要 2 分钟。

hot3.png

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

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

你可能感兴趣的文章
Struts2+JSON+JQUERY DEMO
查看>>
nodejs下的express安装
查看>>
Ubuntu root 密码 sudo passwd
查看>>
STL - C++ 11的Lambda表达式(下)
查看>>
Redis学习系列二之.Net开发环境搭建及基础数据结构String字符串
查看>>
JS 总结
查看>>
面向切面编程(AOP)
查看>>
第三次作业
查看>>
JDBC编程:使用 Statement 修改数据库
查看>>
ES6学习笔记(二)
查看>>
http 请求类
查看>>
elasticsearch 服务安全配置
查看>>
R3.4.0安装包时报错“需要TRUE/FALSE值的地方不可以用缺少值”,需升级到R3.5.0
查看>>
Java学习3_一些基础3_16.5.7
查看>>
通过PowerShell获取域名whois信息
查看>>
Python基础之给函数增加元信息
查看>>
痞子衡嵌入式:开启NXP-MCUBootUtility工具的HAB加密功能 - CST(中英双语)
查看>>
洛谷——2639[USACO09OCT]Bessie的体重问题Bessie's We…——01
查看>>
(转)推荐系统—从入门到精通(论文选摘)
查看>>
HDOJ 1025 DP+二分
查看>>