mysql--------四种索引类型
一、索引的类型
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--------四种索引类型相关推荐
- mysql的四种索引类型
一.索引的类型 mysql索引的四种类型:主键索引.唯一索引.普通索引和全文索引.通过给字段添加索引可以提高数据的读取速度,提高项目的并 ...
- 【实施工程师之家】——mysql四种索引PRIMARY(主键索引)、INDEX(一般索引)、UNIQUE(非空索引)、FULLTEXT(全文索引)应用
mysql四种索引PRIMARY(主键索引).INDEX(一般索引).UNIQUE(非空索引).FULLTEXT(全文索引)应用 目录 1)PRIMARY: 2)NORMAL: 3)UNIQUE: 4 ...
- mysql几种索引类型_Mysql几种索引类型的区别及适用情况
如大家所知道的,Mysql目前主要有以下几种索引类型:FULLTEXT,HASH,BTREE,RTREE. 那么,这几种索引有什么功能和性能上的不同呢? FULLTEXT 即为全文索引,目前只有MyI ...
- mysql 索引类型 mul_mysql的四种索引类型
一.索引的类型 mysql索引的四种类型:主键索引.唯一索引.普通索引和全文索引.通过给字段添加索引可以提高数据的读取速度,提高项目的并发能力和抗压能力.索引优化时mysql中的一种优化方式.索引的作 ...
- MYSQL数据库四种索引类型的简单使用
MYSQL数据库索引类型包括普通索引,唯一索引,主键索引与组合索引,这里对这些索引的做一些简单描述: (1)普通索引 这是最基本的MySQL数据库索引,它没有任何限制.它有以下几种创建方式: 创建索引 ...
- mysql四种常用的索引_四种常见的索引类型
主键索引:数据记录里面不能有 null,数据内容不能重复,在一张表里面不能有 多个主键索引. 普通索引:使用字段关键字建立的索引,主要是提高查询速度 唯一索引:字段数据是唯一的,数据内容里面能否为 n ...
- mysql 索引类型 ref_什么是索引?Mysql目前主要的几种索引类型
一.索引 MySQL索引的建立对于MySQL的高效运行是很重要的,索引可以大大提高MySQL的检索速度. 打个比方,如果合理的设计且使用索引的MySQL是一辆兰博基尼的话,那么没有设计和使用索引的My ...
- 什么是索引?Mysql目前主要的几种索引类型 和 引擎区别?
一.索引 MySQL索引的建立对于MySQL的高效运行是很重要的,索引可以大大提高MySQL的检索速度. 打个比方,如果合理的设计且使用索引的MySQL是一辆兰博基尼的话,那么没有设计和使用索引的My ...
- MySQL支持的四种索引_Mysql常见四种索引的使用
提到mysql优化,索引优化是必不可少的.其中一种优化方式 --索引优化,添加合适的索引能够让项目的并发能力和抗压能力得到明显的提升. 我们知道项目性能的瓶颈主要是在"查(select)&q ...
- 【详解】MySQL分区表,分区的过程,四种分区类型
分区的功能并不是在存储引擎层进行完成的,因此不是只有InnoDB存储引擎支持分区,常见的存储引擎MyISAM,NDB都支持.当并不是所有的存储引擎都支持,如CSV等不支持.在使用分区功能之前,应该对存 ...
最新文章
- 内存缓存LruCache的简单使用
- 系统信息命令(uname、dmesg、df、hostname、free)
- 生成对抗网络GANs理解(附代码)
- 以小见大、由浅入深-谈如何面试Javascript工程师
- 简单的按键控制LED
- Retrofit学习笔记
- P8-DevOps中的CI/CD环境搭建与调优
- CocoaPods 安装和使用
- rem是如何实现自适应布局的?
- 10年+SQL性能优化专家谈SQL等价改写核心思想
- 未处理的异常: 0xC0000091: Floating-point overflow 的解决办法
- 收到华为offer后的阶段性总结
- SATA学习笔记 14 ---SATA PM
- Win7电脑定时关机
- Python Tesseract-orc 识别简单验证码
- 编码 GBK 的不可映射字符 (0x81)
- 微信卡劵、微信卡包,必须是认证订阅号或认证服务号
- ISO C 与POSIX 的关系
- VMware安装Centos7和卸载超详细过程(图文)
- 做为一名程序员应该有的的好习惯
热门文章
- nowcoder172C 保护 (倍增lca+dfs序+主席树)
- jQuery data
- JQuery-Dialog(弹出窗口,遮蔽窗口)
- vivox7刷linux系统,Vivo 找来宋仲基帮你送 X7
- python两个时间内的工作日_如何在Python中找到两个日期之间的星期一或任何其他工作日的数目?...
- python得读音_python3 - 文本读音器
- 小米刷第三方recovery_小米平板4/Plus LTE版本开启电话功能
- 怎样用u盘linux安装ntp协议,电脑中怎么配置NTP服务
- 监督分类空白处也被分类了_监督学习(2)|本质是分类的“逻辑回归”
- swift 打开第三方应用_iOS卡通人物帧动画入门9(大结局):番外篇-扩展第三方类