图书管理员不好当啊。他是如何管理那么多书的,索引告诉你

81 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第18天,点击查看活动详情

前言

  • 数据库为什么访问这么快,在大数据情况下为什么能够快速定位到我们需要的数据呢?

为什么要使用索引

  • 索引是 MySQL 中十分重要的数据库对象,是数据库性能调优技术的基础,常用于实现数据的快速检索

  • 索引就是根据表中的一列或若干列按照一定顺序建立的列值与记录行之间的对应关系表,实质上是一张描述索引列的列值与原表中记录行之间一 一对应关系的有序表。

  • InnoDB是一个将表中的数据存储在磁盘上的存储引擎,即使我们关闭并重启服务器,数据还是存在。而真正处理数据的过程发生在内存中。如果处理写入和修改请求,还需要将内存中的内容刷新到磁盘上。而我们知道读写磁盘的速度非常慢,与读写内存差了几个数量级。InnoDB存储引擎需要一条一条的把记录从磁盘上读出来么?不,那样会慢死,InnoDB采取的方式是,将数据划分为若干个页,以页作为磁盘和内存之间交互的基本单位。InnoDB中页的大小一般为16KB。也就是在一般情况下,一次最少从磁盘中读取16KB的内容到内存中。

  • 一次最少把内存中的16KB内容刷新到磁盘中

序号解释
1索引只是提高效率的一个因素,因此在建立索引的时候应该遵循以下原则:
2在经常需要搜索的列上建立索引,可以加快搜索的速度。
3在作为主键的列上创建索引,强制该列的唯一性,并组织表中数据的排列结构。
4在经常使用表连接的列上创建索引,这些列主要是一些外键,可以加快表连接的速度。
5在经常需要根据范围进行搜索的列上创建索引,因为索引已经排序,所以其指定的范围是连续的。
6在经常需要排序的列上创建索引,因为索引已经排序,所以查询时可以利用索引的排序,加快排序查询。
7在经常使用 WHERE 子句的列上创建索引,加快条件的判断速度。