为什么你的服务器像没编目的书架

想象你走进一座藏书几万册的图书馆,所有书都按到货顺序往架子上塞,没有任何分类标签。
想找一本《数据库索引优化》,你需要从头走到尾,一本一本翻。这就是数据库没建索引时的全
表扫描。 图书分类法和数据库索引,本质上是同一件事——用可预测的排列方式,把"找东西"
的时间从 O(n) 压缩到 O(log n)。图书馆的办法是杜威十进分类法,从大类到小类逐层定位;
数据库的办法是 B+树,从根节点到叶节点逐层查找。一个手动一个自动,逻辑结构高度相似。
什么时候分类法失效?当你把书按购买日期排序而不是按主题排序的时候。数据库里也一样—
—主键用 UUID v4,索引全打在只有几种取值的 status 列上,查询照样全表扫。索引本身存在
不等于索引有效,就像书摆得整齐不等于有人能找到。 覆盖索引的概念也有日常对应:你在每
个书架侧面贴上了该架书籍的完整目录,不用走到架前翻开书,扫一眼标签就能确定有没有你
要的那本。数据库里如果查询的所有列都落在索引里,引擎同样不需要回表。 倒排索引更直观。
TF-IDF 的逻辑很简单:一个词在某篇文章里反复出现,说明它与这篇文章高度相关;如果它在
所有文章里都很常见,比如"的""是""了",那对区分的贡献就接近为零。这和你在图书馆里看到
一本书反复提到某个概念,会判断它与该领域相关,是同样的直觉。 你的数据库慢查询告警时,
不妨想一想:你的"书架"是按类别排的,还是按入库时间排的?你的索引是建在区分度高的列
上,还是浪费在每个值都相同的字段上?索引设计不像魔法,它背后的直觉,几百年图书馆管
理员早就摸透了。数据库管理员和他们做的是同一件事——只不过一个管纸,一个管磁盘。


投稿用户:NEKO_M_O

QQ:481485713

分享到:
1
系统公告

桔风娘通知您~

有问题发工单!有问题发工单!有问题发工单!
重要的事情说三遍
说明文字
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
橘汁
橘汁
售后客服
犽可
犽可
售前客服
橘汁
橘汁
售后客服
xiaopei
xiaopei
技术咨询
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意