零:文章概要
这篇文章,主要是和大家一起去了解 索引,然后一起使用CREATE INDEX语法给数据库中的表创建一个索引。
一:先拿电话薄做个类比
假如,一个电话薄里面包含了一个城市的所有人的姓名和电话号码。那么,想找到Bob Cat的电话号码,另外我们知道电话簿中名字是按照字母顺序排列的,所以首先要查找姓氏为Cat的页面,然后在这个页面下查找名字为Bob的电话号码。
那如果在电话薄中的名字没有按照字母排列,就需要去浏览所有的页,然后在里面查找每个姓名直到找到Bob Cat,这种是查找了所有的电话页,所以在时间上还是挺费时的。
那我们将电话簿与数据库表联系起来,如果有一个电话簿表然后要找到Bob Cat的电话号码,则可以执行以下查询:
SELECT
phone_number
FROM
phone_book
WHERE
first_name = 'Bob' AND
last_name = 'Cat';
这个写起来很容易,在数据量不大的时候查询速度很快,但数据库必须扫描表的所有行,直到找到该行为止,如果表有数百万行而没有索引时,则检索数据会耗费很多的时间。
二:索引的介绍
索引是一种数据结构,例如B-Tree,这种数据结构是需要额外的写入和存储为代价来提高表上数据检索的速度。一旦建立了索引后&#x