一、索引的类型

mysql索引的四种类型:主键索引唯一索引普通索引全文索引。通过给字段添加索引可以提高数据的读取速度,提高项目的并发能力和抗压能力。索引优化时mysql中的一种优化方式。索引的作用相当于图书的目录,可以根据目录中的页码快速找到所需的内容

 主键索引:
        主键是一种唯一性索引,但它必须指定为PRIMARY KEY,每个表只能有一个主键。

alert table tablename add primary key (`字段名`)

唯一索引:
        索引列的所有值都只能出现一次,即必须唯一,值可以为

alter table table_name add primary key (`字段名`);

普通索引 :
        基本的索引类型,值可以为空,没有唯一性的限制。

alter table table_name add index (`字段名`);

全文索引:
        全文索引的索引类型为FULLTEXT。全文索引可以在varchar、char、text类型的列上创建。可以通过ALTER TABLE或CREATE INDEX命令创建。对于大规模的数据集,通过ALTER TABLE(或者CREATE INDEX)命令创建全文索引要比把记录插入带有全文索引的空表更快。MyISAM支持全文索引,InnoDB在mysql5.6之后支持了全文索引。        全文索引不支持中文需要借sphinx(coreseek)迅搜<、code>技术处理中文。

alter table 表名 add FULLTEXT(`字段名`);

二、查看表的所有索引和删除

    #查看:show indexes from `表名`;#或show keys from `表名`;#删除alter table `表名` drop index 索引名;

三、索引的机制

1.为什么我们添加完索引查询速度为变快
    传统的查询方法,是按照表的顺序遍历的,不论查询几条数据,mysql需要将表的数据从头到尾遍历一遍
    在我们添加完索引之后,mysql一般通过BTREE算法生成一个索引文件,在查询数据库时,找到索引文件进行遍历(折半查找大幅查询效率),找到相应的键从而获取数据

2.索引的代价
    2.1创建索引是为产生索引文件的,占用磁盘空间
    2.2索引文件是一个二叉树类型的文件,可想而知我们的dml操作同样也会对索引文件进行修改,所以性能会下降

3.在哪些column上使用索引?
    3.1较频繁的作为查询条件字段应该创建索引
    3.2唯一性太差的字段不适合创建索引,尽管频繁作为查询条件,例如gender性别字段
    3.3更新非常频繁的字段不适合作为索引
    3.4不会出现在where子句中的字段不该创建索引

总结: 满足以下条件的字段,才应该创建索引.
a: 肯定在where条经常使用 b: 该字段的内容不是唯一的几个值 c: 字段内容不是频繁变化

转载于:https://www.cnblogs.com/zhangqie/p/8416164.html

mysql--------四种索引类型相关推荐

  1. mysql的四种索引类型

    ​一.索引的类型​ mysql索引的四种类型:​​主键索引​​​.​​唯一索引​​​.​​普通索引​​​和​​全文索引​​​.通过给字段​​添加索引​​​可以​​提高数据的读取速度​​​,提高项目的并 ...

  2. 【实施工程师之家】——mysql四种索引PRIMARY(主键索引)、INDEX(一般索引)、UNIQUE(非空索引)、FULLTEXT(全文索引)应用

    mysql四种索引PRIMARY(主键索引).INDEX(一般索引).UNIQUE(非空索引).FULLTEXT(全文索引)应用 目录 1)PRIMARY: 2)NORMAL: 3)UNIQUE: 4 ...

  3. mysql几种索引类型_Mysql几种索引类型的区别及适用情况

    如大家所知道的,Mysql目前主要有以下几种索引类型:FULLTEXT,HASH,BTREE,RTREE. 那么,这几种索引有什么功能和性能上的不同呢? FULLTEXT 即为全文索引,目前只有MyI ...

  4. mysql 索引类型 mul_mysql的四种索引类型

    一.索引的类型 mysql索引的四种类型:主键索引.唯一索引.普通索引和全文索引.通过给字段添加索引可以提高数据的读取速度,提高项目的并发能力和抗压能力.索引优化时mysql中的一种优化方式.索引的作 ...

  5. MYSQL数据库四种索引类型的简单使用

    MYSQL数据库索引类型包括普通索引,唯一索引,主键索引与组合索引,这里对这些索引的做一些简单描述: (1)普通索引 这是最基本的MySQL数据库索引,它没有任何限制.它有以下几种创建方式: 创建索引 ...

  6. mysql四种常用的索引_四种常见的索引类型

    主键索引:数据记录里面不能有 null,数据内容不能重复,在一张表里面不能有 多个主键索引. 普通索引:使用字段关键字建立的索引,主要是提高查询速度 唯一索引:字段数据是唯一的,数据内容里面能否为 n ...

  7. mysql 索引类型 ref_什么是索引?Mysql目前主要的几种索引类型

    一.索引 MySQL索引的建立对于MySQL的高效运行是很重要的,索引可以大大提高MySQL的检索速度. 打个比方,如果合理的设计且使用索引的MySQL是一辆兰博基尼的话,那么没有设计和使用索引的My ...

  8. 什么是索引?Mysql目前主要的几种索引类型 和 引擎区别?

    一.索引 MySQL索引的建立对于MySQL的高效运行是很重要的,索引可以大大提高MySQL的检索速度. 打个比方,如果合理的设计且使用索引的MySQL是一辆兰博基尼的话,那么没有设计和使用索引的My ...

  9. MySQL支持的四种索引_Mysql常见四种索引的使用

    提到mysql优化,索引优化是必不可少的.其中一种优化方式 --索引优化,添加合适的索引能够让项目的并发能力和抗压能力得到明显的提升. 我们知道项目性能的瓶颈主要是在"查(select)&q ...

  10. 【详解】MySQL分区表,分区的过程,四种分区类型

    分区的功能并不是在存储引擎层进行完成的,因此不是只有InnoDB存储引擎支持分区,常见的存储引擎MyISAM,NDB都支持.当并不是所有的存储引擎都支持,如CSV等不支持.在使用分区功能之前,应该对存 ...

最新文章

  1. 内存缓存LruCache的简单使用
  2. 系统信息命令(uname、dmesg、df、hostname、free)
  3. 生成对抗网络GANs理解(附代码)
  4. 以小见大、由浅入深-谈如何面试Javascript工程师
  5. 简单的按键控制LED
  6. Retrofit学习笔记
  7. P8-DevOps中的CI/CD环境搭建与调优
  8. CocoaPods 安装和使用
  9. rem是如何实现自适应布局的?
  10. 10年+SQL性能优化专家谈SQL等价改写核心思想
  11. 未处理的异常: 0xC0000091: Floating-point overflow 的解决办法
  12. 收到华为offer后的阶段性总结
  13. SATA学习笔记 14 ---SATA PM
  14. Win7电脑定时关机
  15. Python Tesseract-orc 识别简单验证码
  16. 编码 GBK 的不可映射字符 (0x81)
  17. 微信卡劵、微信卡包,必须是认证订阅号或认证服务号
  18. ISO C 与POSIX 的关系
  19. VMware安装Centos7和卸载超详细过程(图文)
  20. 做为一名程序员应该有的的好习惯

热门文章

  1. nowcoder172C 保护 (倍增lca+dfs序+主席树)
  2. jQuery data
  3. JQuery-Dialog(弹出窗口,遮蔽窗口)
  4. vivox7刷linux系统,Vivo 找来宋仲基帮你送 X7
  5. python两个时间内的工作日_如何在Python中找到两个日期之间的星期一或任何其他工作日的数目?...
  6. python得读音_python3 - 文本读音器
  7. 小米刷第三方recovery_小米平板4/Plus LTE版本开启电话功能
  8. 怎样用u盘linux安装ntp协议,电脑中怎么配置NTP服务
  9. 监督分类空白处也被分类了_监督学习(2)|本质是分类的“逻辑回归”
  10. swift 打开第三方应用_iOS卡通人物帧动画入门9(大结局):番外篇-扩展第三方类