数据库索引
Posted hzxxfx
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据库索引相关的知识,希望对你有一定的参考价值。
索引,对数据库表中一列或多列的值进行排序的一种结构,使用索引可提高数据库中待定数据的查询速度。
索引是与表或视图关联的独立的、物理的数据库结构,可以加快从表或视图中检索行的速度。索引包含由表或视图中的一列或多列生成的键。这些键存储在一个结构(B树)中,以便mysql可以快速有效的查找与键值关联的行(部分MySQL中的数据库引擎还可以支持hash结构)
索引的作用就是为了提高数据库从表中或视图中查询数据的速度,改善数据库性能,如同书的目录一样。一般来说,目录所占的页数比书的内容少,而索引也需要储存的空间,被存放索引的空间在数据库中成为索引页。索引页是数据库中储存索引的数据页,存放键值以及指向数据位置的指针。
索引的特点:
1. 通过创建唯一索引,可以保证数据库表中的每一行数据的唯一性。
2. 可以大大加快数据的查询速度。
3. 在实现数据的引用完整性方面,可以加速表和表之间的连接。
4. 在使用分组和排序进行查询数据时,也可以显著的减少查询中分组和排序的时间。
索引的缺点:
1. 创建索引和维护索引需要时间,并且随着数据量的增加所耗费的时间也会增加。
2. 索引需要占用磁盘空间,除了数据表占数据空间外,每一个索引还要占一定的物理空间(innoDB 数据表上的索引是表空间的一个组成部分),如果有大量的索引,索引文件可能比数据文件更快达到最大文件尺寸。
3. 当对表中数据进行 增加/删除/修改 等操作时,索引也会动态维护,这样就降低了数据库的维护速度。
索引分类:1.普通索引 2.唯一索引 3.主键索引 4. 组合索引 5.全文索引 6.空间索引
创建表时添加索引
create table 表名 (
属性名 数据类型 【完整性约束条件】,
属性名 数据类型 【完整性约束条件】,
......
属性名 数据类型 【UNIQUE/FULLTET/SPATIAL】INDEX/KEY
(属性名 1 【(长度)】【asc/desc】)
);
UNIQUE/FULLTET/SPATIAL为可选参数,分别表示唯一索引,全文索引和空间索引;INDEX/KEY为同义词,两者作用相同,用来指定创建索引;asc/desc 指定升序或者降序的索引值存储。
以上是关于数据库索引的主要内容,如果未能解决你的问题,请参考以下文章
数据库表索引:普通索引唯一性索引全文索引多列索引隐藏索引删除索引
数据库基础:讲解MySQL索引的概念及数据库索引的应用[2]
Pandas中xs()函数索引复合索引数据的不同切面数据(索引复合索引中需要的数据):索引列复合索引中的一个切面索引行复合索引中的一个切面