检索是计算机的一个重要思维。计算机系统是处理数据的工具,那么有数据的地方必有检索。

检索的应用

在我们的日常开发中,“检索”的概念可以说经常用到,例如:

  • 数据库:各种关系型的或非关系型的数据库
  • 搜索引擎:像 ElasticSearch 或者谷歌百度。搜索引擎使用的最重要的技术是“倒排索引”
  • 各种各样的业务数据管理

数据读取和动态寻址

计算机特别擅长处理数据,不论数据是来自键盘鼠标,网络还是存储设备,它处理信息的速度是极快的,基本在人类反应速度的 100 倍左右(如果说人类的基本反应间隔为 100ms,那么计算机处理信息的能力大概在 1ms 这个量级)。

而检索则代表了数据的读取过程。

为什么计算机读取数据可以那么快?

是因为计算机的对存储设备是可以利用地址寻址的。不论是内存还是硬盘,任何存储设备,数据的具体存储位置都会拥有一个“地址”,一旦地址确定,计算机就能以极快的方式找到数据。

内存(DRAM)的全称就是“动态随机存储器”,意思就是在任何地址上都能以极快的方式找到数据。

不过严格得讲,硬盘并不完全是以地址寻址的,所以硬盘的速度比内存慢一些。

索引

要检索,那么就要有索引。索引其实就是“数据的地址”,所以索引在计算机中非常重要。

理解索引最简单的方式就是想想一个字典,字典中每个单词都用最开头的字母标识,这个字母就是字典的索引。