一、索引的类型

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

主键索引:

主键是一种唯一性索引,但它必须指定为PRIMARY KEY,每个表只能有一个主键。alert table tablename add primary key(`字段名`)

唯一索引:

索引列的所有值都只能出现一次,即必须唯一,值可以为空。alter table table_name add unique index(`字段名`);

#alter table table_name drop index `字段名` , add unique index(`字段名`);#删除旧索引再添加

普通索引 :

基本的索引类型,值可以为空,没有唯一性的限制。alter table table_name add index(`字段名`);

全文索引:

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

全文索引不支持中文需要借sphinx(coreseek)或迅搜技术处理中文。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: 字段内容不是频繁变化。

四、查看索引的使用情况show status like '%Handler_read%' ;

handler_read_key:这个值越高越好,越高表示使用索引查询到的次数。

handler_read_rnd_next:这个值越高,说明查询低效。

mysql 索引类型 mul_mysql的四种索引类型相关推荐

  1. P2P穿透四种NAT类型

    P2P穿透&四种NAT类型 以下对四种NAT类型分别予以说明: 1.全锥形NAT IP.端口都不受限.只要客户端由内到外打通一个洞之后(NatIP:NatPort -> A:P1),其他 ...

  2. mysql的四种索引类型

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

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

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

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

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

  5. MySQL索引的概念以及七种索引类型介绍

    MySQL索引的概念以及七种索引类型介绍. 文章目录 1 索引的概念 2 索引的类型 1 索引的概念 索引(在MySQL中也叫做"键(key)")是存储引擎用于快速找到记录的一种数 ...

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

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

  7. 数据库常见的四种索引

    数据库常见的四种索引 1.普通索引:主要以B+树和哈希索引为主,任务是加快对数据的访问速度,常用于查询和排序的条件,值可以为空并没有唯一性的限制 2.唯一性索引:与普通索引类似,不同的是唯一性索引,索 ...

  8. MySQL有四种BLOB类型

    先说明一下Blob的类型,直接从网上摘抄了!!! 1.MySQL有四种BLOB类型: ·tinyblob:仅255个字符 ·blob:最大限制到65K字节 ·mediumblob:限制到16M字节 · ...

  9. MySQL提供了四种TEXT类型:TINYTEXT,TEXT,MEDIUMTEXT,和LONGTEXT

    除了CHAR和VARCHAR字符类型时,MySQL为我们提供了TEXT具有更多的功能,其类型CHAR和VARCHAR不能覆盖. 的TEXT是用于存储可以采取从1个字节到4 GB长格式文本字符串是有用的 ...

最新文章

  1. 技术08期:十大经典数据挖掘算法【PageRank篇】
  2. 各种门锁的内部结构图_双核CUP,电镀真金把手,0.3秒开锁,欧瑞博智能门锁S2评测...
  3. 关于java集合框架(三):Map概述与TreeMap
  4. storm kafkaSpout 踩坑问题记录! offset问题!
  5. 2015年第六届蓝桥杯本科B组C++省赛个人题解
  6. java环境配置—配置Tomcat8环境
  7. 18 段代码带你玩转 18 个机器学习必备交互工具
  8. 选择排序(Select Sort)
  9. 酒店管理系统 java_java酒店管理系统项目书.pdf
  10. 美国弗吉尼亚大学计算机科学,弗吉尼亚大学计算机科学系学位设置
  11. Python整数的溢出问题
  12. 19.Oracle数据库SQL开发之 笛卡尔积
  13. 【经典】思科、华为路由器交换机模拟器大全及教程
  14. 后处理SSAO,双边模糊
  15. 经济的寒冬,数据的春天
  16. 3-SII--Android的SD卡文件读写
  17. 生活小发现------联想锁屏壁纸找不到??
  18. 有天跟朋友一起聊天的感受
  19. 商城-商品规格管理-SPU和SKU数据结构
  20. 3.2.1 运维自动化之ansible模块

热门文章

  1. oracle检查scn headroom的正确方法
  2. 银汇通无线pos机促进了金融银行卡的发展
  3. 如何从软件工程师转型为AI工程师?
  4. Echarts实战案例代码(56):geomap实现地区划分区域点击选中高亮效果
  5. 南航空乘、地服广州白云机场上演春运快闪
  6. 微信小程序开发的作用_分享微信小程序开发可以实现什么
  7. python爬虫笔记 -- 更新至2021/06/17
  8. Codeforces 706C
  9. 适合做副业的技能,缺人、高薪、门槛不高,且越老越值钱!
  10. 绘画系统--音乐画笔