索引:图书馆的索书牌,数据库查询加速神器
索引:图书馆的索书牌,数据库查询加速神器
你有没有这种经历?
去图书馆找一本书,工作人员告诉你:"在第三排书架,J区,第5层,从左往右数第8本。"然后你真的就找到了。
但如果图书馆没有索书牌呢?你可能要把整个图书馆的书翻一遍才能找到你要的那本。
数据库索引,就是这个"索书牌"系统。
没有索引的数据库是什么样的?
想象一个没有索引的数据库:
SELECT*FROMusersWHEREname='张三';数据库的反应是:扫描全表。就是把表里的每一条记录都看一遍,直到找到"张三"为止。
如果表里有100万条数据,数据库可能要看100万次。
如果运气不好,"张三"在最后一条……那你就等着吧。
索引是怎么工作的?
数据库索引,本质上是一种数据
