mysql 索引类型 mul_mysql的四种索引类型
一、索引的类型
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的四种索引类型相关推荐
- P2P穿透四种NAT类型
P2P穿透&四种NAT类型 以下对四种NAT类型分别予以说明: 1.全锥形NAT IP.端口都不受限.只要客户端由内到外打通一个洞之后(NatIP:NatPort -> A:P1),其他 ...
- mysql的四种索引类型
一.索引的类型 mysql索引的四种类型:主键索引.唯一索引.普通索引和全文索引.通过给字段添加索引可以提高数据的读取速度,提高项目的并 ...
- MySQL支持的四种索引_Mysql常见四种索引的使用
提到mysql优化,索引优化是必不可少的.其中一种优化方式 --索引优化,添加合适的索引能够让项目的并发能力和抗压能力得到明显的提升. 我们知道项目性能的瓶颈主要是在"查(select)&q ...
- 【实施工程师之家】——mysql四种索引PRIMARY(主键索引)、INDEX(一般索引)、UNIQUE(非空索引)、FULLTEXT(全文索引)应用
mysql四种索引PRIMARY(主键索引).INDEX(一般索引).UNIQUE(非空索引).FULLTEXT(全文索引)应用 目录 1)PRIMARY: 2)NORMAL: 3)UNIQUE: 4 ...
- MySQL索引的概念以及七种索引类型介绍
MySQL索引的概念以及七种索引类型介绍. 文章目录 1 索引的概念 2 索引的类型 1 索引的概念 索引(在MySQL中也叫做"键(key)")是存储引擎用于快速找到记录的一种数 ...
- 【详解】MySQL分区表,分区的过程,四种分区类型
分区的功能并不是在存储引擎层进行完成的,因此不是只有InnoDB存储引擎支持分区,常见的存储引擎MyISAM,NDB都支持.当并不是所有的存储引擎都支持,如CSV等不支持.在使用分区功能之前,应该对存 ...
- 数据库常见的四种索引
数据库常见的四种索引 1.普通索引:主要以B+树和哈希索引为主,任务是加快对数据的访问速度,常用于查询和排序的条件,值可以为空并没有唯一性的限制 2.唯一性索引:与普通索引类似,不同的是唯一性索引,索 ...
- MySQL有四种BLOB类型
先说明一下Blob的类型,直接从网上摘抄了!!! 1.MySQL有四种BLOB类型: ·tinyblob:仅255个字符 ·blob:最大限制到65K字节 ·mediumblob:限制到16M字节 · ...
- MySQL提供了四种TEXT类型:TINYTEXT,TEXT,MEDIUMTEXT,和LONGTEXT
除了CHAR和VARCHAR字符类型时,MySQL为我们提供了TEXT具有更多的功能,其类型CHAR和VARCHAR不能覆盖. 的TEXT是用于存储可以采取从1个字节到4 GB长格式文本字符串是有用的 ...
最新文章
- 技术08期:十大经典数据挖掘算法【PageRank篇】
- 各种门锁的内部结构图_双核CUP,电镀真金把手,0.3秒开锁,欧瑞博智能门锁S2评测...
- 关于java集合框架(三):Map概述与TreeMap
- storm kafkaSpout 踩坑问题记录! offset问题!
- 2015年第六届蓝桥杯本科B组C++省赛个人题解
- java环境配置—配置Tomcat8环境
- 18 段代码带你玩转 18 个机器学习必备交互工具
- 选择排序(Select Sort)
- 酒店管理系统 java_java酒店管理系统项目书.pdf
- 美国弗吉尼亚大学计算机科学,弗吉尼亚大学计算机科学系学位设置
- Python整数的溢出问题
- 19.Oracle数据库SQL开发之 笛卡尔积
- 【经典】思科、华为路由器交换机模拟器大全及教程
- 后处理SSAO,双边模糊
- 经济的寒冬,数据的春天
- 3-SII--Android的SD卡文件读写
- 生活小发现------联想锁屏壁纸找不到??
- 有天跟朋友一起聊天的感受
- 商城-商品规格管理-SPU和SKU数据结构
- 3.2.1 运维自动化之ansible模块