学习 数据库索引index

本文深入探讨了数据库索引的概念、作用、实现方式及其对查找效率的影响。详细介绍了不同类型的索引(如BTree索引、哈希索引、全文索引等),并阐述了如何在数据库中合理使用索引,包括创建、唯一性约束、物理空间占用与维护成本等方面的考量。同时,文章还提到了索引的局限性和最佳实践,强调了在更新包含索引的表时需注意的时间成本增加。

之我见:索引的出现是为了在不读取整个表的情况下,使数据库应用程序可以更快地查找数据。类似于一本书的目录,根据目录查找内容所在的页码;试想如果没有目录的存在,你必须逐页查找。索引的实现有多种索引类型,如BTree索引,哈希索引,全文索引等等。索引会占物理空间,因此建立索引带来查找效率的提高和物理空间占据需要折中。可以针对一列建立索引,也可以针对多列建立索引。

官方解释:索引(Index)是帮助MySQL高效获取数据的数据结构。提取句子主干,就可以得到索引的本质:索引是数据结构。

SQL语句 -- 索引相关

CREATE INDEX CREATE INDEX index_name
ON table_name (column_name)

用户无法看到索引,它们只能被用来加速搜索/查询。注释:更新一个包含索引的表需要比更新一个没有索引的表更多的时间,这是由于索引本身也需要更新。因此,理想的做法是仅仅在常常被搜索的列(以及表)上面创建索引。

假如您希望索引不止一个列,您可以在括号中列出这些列的名称,用逗号隔开:

CREATE INDEX CREATE INDEX index_name
ON table_name (column_name1,column_name2)


CREATE UNIQUE INDEX CREATE UNIQUE INDEX index_name
ON table_name (column_name)
在表上创建一个唯一的索引。唯一的索引意味着两个行不能拥有相同的索引值,因此通常在primary key上建立unique index。
DROP INDEX DROP INDEX table_name.index_name

MySQL索引背后的数据结构及算法原理,请参考:http://www.codinglabs.org/html/theory-of-mysql-index.html  博主写的非常好。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值