数据库创建索引的注意事项
类别:数据库 浏览量:2844
时间:2014-5-19 数据库创建索引的注意事项
数据库创建索引的注意事项
索引可以提高数据的访问速度,但同时也增加了插入、更新和删除操作的处理时间。所以是否要为表增加索引、索引建立在那些字段上,是创建索引前必须要考虑的问题。解决此问题就是分析应用程序的业务处理、数据使用,为经常被用作查询条件、或者被要求排序的字段建立索引。
索引是建立在数据库表中的某些列的上面。因此,在创建索引的时候,应该仔细考虑在哪些列上可以创建索引,在哪些列上不能创建索引。
一、数据库索引创建规则
1、表的主键、外键必须有索引;
2、数据量超过300的表应该有索引;
3、经常与其他表进行连接的表,在连接字段上应该建立索引;
4、经常出现在Where子句中的字段,特别是大表的字段,应该建立索引;
5、索引应该建在选择性高的字段上;
6、索引应该建在小字段上,对于大的文本字段甚至超长字段,不要建索引;
7、复合索引的建立需要进行仔细分析;尽量考虑用单字段索引代替:
A、正确选择复合索引中的主列字段,一般是选择性较好的字段;
B、复合索引的几个字段是否经常同时以AND方式出现在Where子句中?单字段查询是否极少甚至没有?如果是,则可以建立复合索引;否则考虑单字段索引;
C、如果复合索引中包含的字段经常单独出现在Where子句中,则分解为多个单字段索引;
D、如果复合索引所包含的字段超过3个,那么仔细考虑其必要性,考虑减少复合的字段;
E、如果既有单字段索引,又有这几个字段上的复合索引,一般可以删除复合索引;搜索
8、频繁进行数据操作的表,不要建立太多的索引;
9、删除无用的索引,避免对执行计划造成负面影响;
四、创建索引需要注意的地方
您可能感兴趣
- python中怎么连接mysql(python远程连接MySQL数据库)
- zabbix数据库解析(zabbix agent2 监控oracle数据库的方法)
- mysql数据表实例教程(mysql数据库入门第一步之创建表)
- sql server2012自动备份(SQL SERVER 2012数据库自动备份的方法)
- sql server支持两种登录验证方式(远程登陆SQL Server 2014数据库的方法)
- html5能取数据库吗(HTML5 客户端数据库简易使用:IndexedDB)
- laravel查询数据库视图(Laravel5.7 数据库操作迁移的实现方法)
- sqlserver表导入数据(在SQLserver数据库之间进行传表和传数据的图文教程)
- django数据库查询条件(djang常用查询SQL语句的使用代码)
- 如何在cmd里开启mysql(Windows下通过cmd进入DOS窗口访问MySQL数据库)
- yii2对比springboot(Yii框架实现对数据库的CURD操作示例)
- 查看SQL SERVER指定数据库中所有的触发器
- mysql索引面试总结(Mysql数据库索引面试题程序员基础技能)
- 数据库差异备份
- sqlserver数据库如何分页(SQL server分页的4种方法示例很全面)
- apache和yii域名配置(yii框架数据库关联查询操作示例)
- 十二星座爱情支配欲指数(十二星座爱情支配欲指数)
- 虐待儿童是发泄支配欲的愚蠢行为(虐待儿童是发泄支配欲的愚蠢行为)
- 你或许不知道你隐藏的支配欲望(你或许不知道你隐藏的支配欲望)
- 把宽体丰田86卖了,换成7.5代高尔夫GTI玩起姿态与性能并存的改装(把宽体丰田86卖了)
- 大众推出了第五代高尔夫GT(大众推出了第五代高尔夫GT)
- 换代在即,现在是抄底 7.5代 高尔夫的最佳时机吗(换代在即现在是抄底)
热门推荐
- sqlserver 空间数据类型(SQL Server数据类型转换方法)
- python自带的ide的使用(基于python的ini配置文件操作工具类)
- css下填充代码(CSS学习笔记之常用Mixin封装实例代码)
- idea 一键部署springboot docker(IDEA部署Docker到WSL2的详细过程)
- mysql查询条件的优化(MySQL查询优化之查询慢原因和解决技巧)
- jquery插件写法
- 网站服务器需要买哪些设备(选择网站服务器需要注意哪些地方?)
- Sql Server判断函数、存储过程等是否存在
- mysql是否支持透明数据加密(MySQL的加密解密的几种方式小结)
- 用ILMerge合并多个DLL