1、表的主键、外键必须有索引;

2、数据量超过300的表应该有索引;

3、经常与其他表进行连接的表,在连接字段上应该建立索引;

4、经常出现在Where子句中的字段,特别是大表的字段,应该建立索引;

5、索引应该建在选择性高的字段上;

6、索引应该建在小字段上,对于大的文本字段甚至超长字段,不要建索引;

7、复合索引的建立需要进行仔细分析;尽量考虑用单字段索引代替:

A、正确选择复合索引中的主列字段,一般是选择性较好的字段;

B、复合索引的几个字段是否经常同时以AND方式出现在Where子句中?单字段查询是否极少甚至没有?如果是,则可以建立复合索引;否则考虑单字段索引;

C、如果复合索引中包含的字段经常单独出现在Where子句中,则分解为多个单字段索引;

E、如果既有单字段索引,又有这几个字段上的复合索引,一般可以删除复合索引;

8、频繁进行数据操作的表,不要建立太多的索引;
9、删除无用的索引,避免对执行计划造成负面影响;

以上是一些普遍的建立索引时的判断依据,索引的建立必须慎重,对每个索引的必要性都应该经过仔细分析,要有建立的依据。因为太多的索引与不充分、不正确的索引对性能都毫无益处:在表上建立的每个索引都会增加存储开销,索引对于插入、删除、更新操作也会增加处理上的开销。 另外,过多的复合索引,在有单字段索引的情况下,一般都是没有存在价值的;相反,还会降低数据增加删除时的性能,特别是对频繁更新的表来说,负面影响更大。
       总的来说,小型表肯定不建索引,或者数据库记录在亿条数据级以上,还是建议使用非关系型数据库。还有些特殊字段的数据库,比如BLOB,CLOB字段肯定也不适合建索引。其实这个问题更感觉偏向于做软件项目的一种经验。

数据库建立索引常用的原则相关推荐

  1. 数据库建立索引常用的规则

    数据库建立索引常用的规则如下: 查看全文 http://www.taodudu.cc/news/show-3587136.html 相关文章: hive中如何建立索引 oracle数据库分区表建立索引 ...

  2. MySQL索引介绍,普通索引,全文索引,空间索引,多列索引使用原则,建立索引常用的规则

    转自:https://blog.csdn.net/tomorrow_fine/article/details/78337735 1.MySQL在创建数据表的时候创建索引 在MySQL中创建表的时候,可 ...

  3. 数据库建立索引、数据表创建规则、备用字段 / 保留字段 / 预留字段

    数据库建立索引 数据库.数据表建立索引的原则 数据库建立索引的原则 1,确定针对该表的操作是大量的查询操作还是大量的增删改操作. 2,尝试建立索引来帮助特定的查询.检查自己的sql语句,为那些频繁在w ...

  4. 数据库建立索引怎么利用索引查询

    数据库建立索引怎么利用索引查询? 精选 1.合理使用索引 索引是数据库中重要的数据结构,它的根本目的就是为了提高查询效率.现在大多数的数据库产品都采用IBM最先提出的ISAM索引结构. 索引的使用要恰 ...

  5. [转]数据库建立索引的一般依据

    建立索引常用的规则如下: 1.表的主键.外键必须有索引: 2.数据量超过300的表应该有索引: 3.经常与其他表进行连接的表,在连接字段上应该建立索引: 4.经常出现在Where子句中的字段,特别是大 ...

  6. 建立索引常用的规则如下

    建立索引常用的规则如下:  1.表的主键.外键必须有索引: 2.数据量超过300的表应该有索引: 3.经常与其他表进行连接的表,在连接字段上应该建立索引: 4.经常出现在Where子句中的字段,特别是 ...

  7. 数据库建立索引的原则

    索引查询是数据库中重要的记录查询方法,要不要进入索引以及在那些字段上建立索引都要和实际数据库系统的查询要求结合来考虑,下面给出实际中的一些通用的原则: 1. 在经常用作过滤器的字段上建立索引: 2. ...

  8. 数据库mysql建立索引_为mysql数据库建立索引

    前些时候,一位颇高级的程序员居然问我什么叫做索引,令我感到十分的惊奇,我想这绝不会是沧海一粟,因为有成千上万的开发者(可能大部分是使用MySQL的)都没有受过有关数据库的正规培训,尽管他们都为客户做过 ...

  9. [转]为mysql数据库建立索引

    前些时候,一位颇高级的程序员居然问我什么叫做索引,令我感到十分的惊奇,我想这绝不会是沧海一粟,因为有成千上万的开发者(可能大部分是使用MySQL的)都没有受过有关数据库的正规培训,尽管他们都为客户做过 ...

最新文章

  1. ERP顾问在甲方好还是乙方好?
  2. tvnewpro 病毒清除
  3. python爬虫之基于scrapy_redis的分布式爬虫
  4. 关于 angularjs 的小结
  5. Spring Data Jpa的JpaRepository的getOne()方法查询数据实体时报错could not initialize proxy
  6. yum php5.6源码,5.2 YUM升级PHP5.6
  7. textCNN和lightGBM模型对景区口碑评价进行情感分析
  8. VID = 058F PID = 6387 可用的量产工具
  9. 希捷“固件门”,影响深远啊
  10. rssi室内定位算法原理_室内定位常用算法概述
  11. python语言的实验心得体会范文_实验报告心得体会范文3篇_心得体会
  12. 目前最值得入手的蓝牙耳机有哪些?四款高性价比蓝牙耳机推荐
  13. mySQL的备份及导入
  14. android 动态改变button样式,Android 修改button颜色
  15. 机器学习之数学基础 一 .导数
  16. 行业音视频通信市场的技术发展
  17. 程序员的1024|我学开发这一年|长路漫谈
  18. dhu oj 题目列表
  19. Steam Buff 自动选品 网页版教程
  20. Hadoop安装实验及MapReduce编程实验指导

热门文章

  1. MATLAB的输入与输出语句
  2. 使用kNN近邻算法识别水果种类(python学习笔记)
  3. Python---if语句
  4. 安装Grammarly for Microsoft Office 小技巧
  5. 实战案例|黑灰产肆虐,腾讯ACE一键打造清朗游戏世界
  6. 视频直播云新趋势 打造终端+云端一体化
  7. uni-app 海康(HIKVISION)实时视频预览、录像回放、语音对讲
  8. 操盘手给你讲市场理念
  9. let和const命令
  10. 我从Python新手到大师的100天