什么是数据库索引 有哪些分类以及优缺点?
什么是数据库索引
小编为网友们解答什么是数据库索引方面的介绍,相关内容具体如下:
什么是索引
索引是创建在表上的,帮我们快速检索数据的一种数据结构。

索引的分类
主键索引:表设立主键之后会自动创建一个主键索引,innodb引擎里面主键索引是聚簇索引
普通索引:普通索引也就是单值索引,只包含一个列,一个表可以有多个普通索引
唯一索引:索引列的值是唯一的,和主键索引的区别是唯一索引的值可以为空
组合索引:一个索引包含多个列(这里有面试题,也就是索引失效的问题)
全文索引:全文索引只能用于InnoDB或MyISAM表,只能为CHAR、VARCHAR、TEXT列创建
索引的优缺点
1、优缺点
大大加快数据检索的书读,降低IO成本 索引会给数据排序,降低了CPU的消耗
2、索引会消耗磁盘空间
数据库增删改的时候会动态维护索引,导致增删改的时间变长
什么时候适合建索引
适合建立索引的场景
1、主键自动建立唯一索引
2、频繁作为查询条件的字段应该建立索引
3、查询中与其他表关联的字段,外键关系建立索引
4、单键/组合索引的选择问题,组合索引性价比更高
5、查询中排序的字段
不适合建立索引的场景
1、表记录少的
2、经常增删改的表或者字段
3、where条件里用不到的字段不创建索引
4、过滤性不好的不适合建索引,比如(性别)
创建索引
1、创建表的时候
create table `person` (
`id` int UNSIGNED auto_increment,
`name` varchar(64),
`age` int,
`sex` varchar(5),
PRIMARY KEY (`id`)
)ENGINE=InnoDB DEFAULT CHARSET=utf8;
2、create方式
CREATE INDEX nameIndex ON person (name);
3、alter方式
ALTER TABLE person ADD INDEX ageIndex(age);
删除索引
1、drop方式
drop index index_name on table_name ;
2、alter方式
alter table table_name drop index index_name ;
查看表的索引
show index from table_name ;
索引底层
innodb底层结构用的是B tree,一个表有一个聚簇索引的B tree,以及一些其他的非聚簇索引B tree,聚簇索引的叶子节点上是行数据,而非聚簇索引的叶子结点上面是所以包含的列以及聚簇索引的主键,
当我们通过非聚簇索引查询数据的时候首先查到的是聚簇索引的主键,然后根据主键再去查询聚簇索引得到行数据,这个过程我们也称之为回查。
MyISAM里面的都是非聚簇索引(包括主键索引),他们的数据是包含在一个独立的空间,不像聚簇索引是保存在聚簇索引。
相关阅读
-
国外产品设计网站有哪些 国外家具设计网站推荐
跟大家分享国外产品设计网站有哪些和国外家具设计网站推荐的介绍,下面小编为您详细解答 hello,这里是 同捉 作为设计师,工作之余就是想收集多一些 优质、高格逼 的设计网站,但是单靠
-
做网站需要哪些技术支持 网页设计与制作技术
关于做网站需要哪些技术支持和网页设计与制作技术的相关经验,具体介绍如下: 随着互联网高速发展,网站的功能无可取代,网站已经成了每个企业的标配,如果你现在还没开始用互联网接
-
现在小说网站投稿哪里好 适合短篇小说投稿的网站推荐
本文核心内容:现在小说网站投稿哪里好和适合短篇小说投稿的网站推荐方面的内容,请看下面详细的介绍。 很多朋友想通过写网络小说赚钱,又不知道哪个平台好,哪个平台适合自己。下面
-
企业的网站建设需要做什么工作 公司建立网站的步骤
正文核心导读:企业的网站建设需要做什么工作和公司建立网站的步骤的电脑小知识,具体介绍如下: 工作了这么多年,发现很多的客户在建设自己的 品牌网站 的时候都不知道网站建设的流


