1、   表的某个字段值得离散度越高,该字段越适合选作索引的关键字。主键字段以及唯一性约束字段适合选作索引的关键字,原因就是这些字段的值非常离散。尤其是在主键字段创建索引时, cardinality (基数,集的势)的值就等于该表的行数。 MySQL 在处理主键约束以及唯一性约束时,考虑周全。数据库用户创建主键约束的同时, MySQL 自动创建主索引( primary index ),且索引名称为 Primary;数据库用户创建唯一性索引时, MySQL 自动创建唯一性索引( unique index ),默认情况下,索引名为唯一性索引的字段名。

2、   占用存储空间少的字段更适合选作索引的关键字。例如,与字符串相比,整数字段占用的存储空间较少,因此,较为适合选作索引关键字。

3、   存储空间固定的字段更适合选作索引的关键字。与 text 类型的字段相比, char 类型的字段较为适合选作索引关键字。

4、   Where 子句中经常使用的字段应该创建索引,分组字段或者排序字段应该创建索引,两个表的连接字段应该创建索引。

5、   更新频繁的字段不适合创建索引,不会出现在 where 子句中的字段不应该创建索引。

6、   最左前缀原则。

7、   尽量使用前缀索引。

转载于:https://www.cnblogs.com/tangchuanyang/p/6013151.html

数据库在什么情况下适合添加索引相关推荐

  1. MySQL索引优化:哪些情况下需要建立索引(适合构建索引的几种情况)

    适合构建索引的几种情况: 引言 我们知道正确的建立索引可以加快数据库的查询,但是如果索引建立不当,或者随意的建立过多索引不仅不会提升数据库的效率,反而在进行数据更新操作的时候需要耗费系统资源对索引进行 ...

  2. SQL查询优化方法 提高SQL查询效率 数据库的哪些字段适合添加索引

    如何提高sql的查询效率 在正确的字段上创建索引. 优化查询sql的写法(特别是where语句的写法). 一.数据库的哪些字段适合添加索引 表的某个字段值得离散度越高,该字段越适合选作索引的关键字.主 ...

  3. mysql哪些字段适合加索引_【数据库】mysql哪些字段适合加索引

    数据库中字段适合添加索引的有表中某个字段值离散度越高越适合,占用存储空间少的字段,存储空间固定的字段,where子句中经常用到的字段等 1.表的某个字段值得离散度越高,该字段越适合选作索引的关键字.主 ...

  4. 管理QQ群,什么情况下适合用软件

    管理QQ群,什么情况下适合用软件? 不需要人工干预也能实现目的的时候.比如不求质量单求数量,用软件疯狂的做. 比如qq群群发引流到空间日志. 这个工作,用软件发就挺好的,跟雇威客们发,效果一样. 但如 ...

  5. mysql数据库哪些情况不适合使用索引

    上一篇我们讲述了哪些情况下可以使用索引(11种情况,这也是我们非常重视的sql优化的部分).那么哪些情况下不适合使用索引呢?这里我们列出了7中情况. 1.在where条件中(包括group by以及o ...

  6. Thymeleaf——在不覆盖现有class属性的情况下动态添加CSS class解决方案

    问题描述 th:class动态添加CSS class会覆盖现有class属性,导致class较多时,表达式过长. 官方文档 https://www.thymeleaf.org/doc/tutorial ...

  7. MySql 你知道什么情况下适合使用Join 联表查询吗 ?

    志在巅峰的攀登者,不会陶醉在沿途的某个脚印之中,在码农的世界里,优美的应用体验,来源于程序员对细节的处理以及自我要求的境界,年轻人也是忙忙碌碌的码农中一员,每天.每周,都会留下一些脚印,就是这些创作的 ...

  8. 数据库表中,一般什么样的字段适合添加索引

    主键.外键.where.group by.order by 1. 表的主键.外键必须有索引 2. 数据量超过300的表应该有索引 3. 经常与其他表进行连接的表,在连接字段上应该建立索引 4. 经常出 ...

  9. mysql表多大的时候需要分区_数据库分区表 什么情况下需要分区

    什么数据库需要进行分区?首先看一下我们的案例:2010年6月我们六期IT开发团队接到一个XX全国连锁店的餐饮系统,经过一周的敏捷开发之后,XX餐饮系统正式上线了,由于该软件的功能强大,操作简单,功能灵 ...

  10. ubuntu mysql 更新_数据库应用(三): Ubuntu 下 MySQL添加、更新与删除数据

    添加.更新与删除数据 1.添加数据 命令格式: INSERT|replace INTO 表名(字段名1,字段名2,--) VALUES(值1,值2,--), (值1,值2,--); 需要注意:使用in ...

最新文章

  1. hadoop集群配置文件与功能对应解析
  2. java实现人脸识别源码【含测试效果图】——Dao层(BaseDao)
  3. ESP8266使用方法
  4. UVa532 Dungeon Master 三维迷宫
  5. vc6.0编译c++程序后在vc2008中调试的技巧(符号信息和链接)
  6. NSA永恒之蓝病毒,如何通过360工具修复?
  7. Spring-cloud学习教程视频
  8. Jmeter进行接口测试流程步骤详解
  9. 北京市电动自行车产品目录 汇总查询
  10. 三季度国内光伏市场需求仍将强劲
  11. 什么是软件,软件有哪些特性?
  12. 朱志坤计算机学院,厦门工学院第七届田径运动会竞赛规程.doc
  13. [HEVC] HEVC学习(五) —— 帧内预测系列之三
  14. 微信公众平台后台编辑器上线图片缩放和封面图裁剪功能
  15. 离线安装docker,docker安装MySQL,Redis,ES,Kibana,mongoDB,RocketMQ
  16. 需不需要懂代码?——软件测试人员
  17. 论文笔记----Selective Transfer Learning for EEG-Based Drowsiness Detection
  18. LabVIEW动态载入VI
  19. ##安利几个很好的网站和软件##
  20. iOS 11 NFC技术

热门文章

  1. 《PIC微控制器项目设计:C语言》一导读
  2. 《刺猬的优雅》观后感
  3. 关于多表的leftJoin(转)
  4. 使用ASP.NET Web Api构建基于REST风格的服务实战系列教程【三】——Web Api入门
  5. 2d isometric 坐标变换
  6. 非关系数据库-NoSQL探讨
  7. 教你手写Java层handler机制
  8. dexposed框架Android在线热修复
  9. java的dtd文件_Eclipse中在XML中如何关联.dtd文件
  10. iphone怎么长截屏_涨知识了!原来苹果手机也可以长截屏,还不知道的,快来学一学...