栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

mysql的索引

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

mysql的索引

一、索引的定义

索引是一种特殊的文件,包含着对数据表中所有记录的引用指针。(书的目录,快速寻找相应内容)
可以对表中的一列或多列创建索引,并指定索引类型。

(所学索引基于mysql5.5之后的数据引擎InnoDB)

一、mysql常见的两种数据引擎:
5.5版本之后InnoDB和5.5版本之前的MyISAM
区别:
(1)InnoDB支持事务(保持数据的稳定性),稳定性比MyISAM好,MyISAM不支持事务
(2)MyISAM性能比较高,比InnoDB高

二、存储数据模组:
1.磁盘:容量大、价格便宜、操作速度慢、可持久化(电脑重启数据还存在)
2.内存:容量小、价格比较贵、操作速度快、不可持久化
3.CPU缓存:容量小、操作速度极快、不可以持久化

索引中数据存储在磁盘中,存储的是数据的位置
查询数据的存储目录:
show variables like ‘%dir%’;

二、为什么使用索引

1.索引避免了顺序查询,提高查询速率
2.使用索引可以将数据库中的关键索引信息存储到内存中,内存的操作速度比磁盘快

一张表可以有多个索引,每个索引就是一个目录。

三、索引的优缺点和使用场景

1.优点
可以提高查询效率
2.缺点
(1)维护成本高,因为索引使用B+树,每次新增、删除数据都需要整理树结构
(2)增加存储成本(磁盘、内存)
(3)索引过多会对MYSQL的优化器(选择合适索引)造成一定负担
3.使用场景
(1)数据量大
(2)经常查询的列
4.不适用场景
(1)数据使用频率低,而且添加和删除比较高频的业务
(2)电脑本身磁盘和内存空间不足
5.索引使用注意事项
对已经存在的很多数据的表新增索引的时候,不能在生产环境上执行(找一个没有用户使用的时间段)。

四、索引的分类

1.按照是否为主键
(1)主键索引(聚簇索引)
(2)非主键索引(非聚簇索引/二级索引)
2.按照特征
(1)普通索引
(2)唯一索引(创建索引的字段具有唯一性)
(3)联合索引(由一个表中的多个字段组成的索引)

五、索引的创建

1.主键索引、唯一索引在创建表时,创建了主键约束或者唯一约束时会自动创建主键索引和唯一索引

2.查看索引:show index from table_name;

3.手动创建索引
普通索引:create index 索引名 on 表名(字段名)

联合索引:create index 索引名 on 表名(字段名,字段名)

唯一索引:create unique index 索引名 on 表名(字段名)
或create unique index 索引名 on 表名(字段名,字段名)

主键索引:alter table 表名 add primary key(字段名)

注意:
索引和约束联系和区别
1.创建索引时会自动创建约束,在创建约束时也会自动创建索引
2.索引和约束是不同的业务,约束是用来规定数据的正确性,索引是用来提升数据库的程序性

六、索引的删除

drop index 索引名 on 表名;
(每个索引名在一张表中是唯一的,不能重复)

注意事项:
(1)创建索引会创建对应约束,删除索引会删除对应约束
(2)唯一索引创建前提:原先的数据具有唯一性

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/926944.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号