Kacam.net看开网

数据库

联合索引的顺序

(user_id, status) 这个索引,单查 status 为什么用不上?

复制提示词,选一家接着聊 —— 它会当面试官逐幕问你,而不是把答案倒给你。

手机上装了对应 App 的,系统会直接开 App。微信里点不开外部 App,得先用浏览器打开。

复制走的那段末尾带着判卷用的底牌,别自己先读 —— 自己推出来过才算学到。

这一份是整个系列的地基:说不清叶子节点上是什么顺序的人,后面几份里「锁加在索引上」「扫描行数为什么这么大」都会跟着糊。

它不会给你「最左前缀」这四个字。它会让你先把六条记录按索引里的顺序抄一遍,然后一条条问哪些查询用得上 —— 你自己抄过那一串,规则就不用背了。

第三幕最值钱:索引是 (user_id, created_at, status),查询三个条件都写了 —— 有几列是真的用来定位的? 多数人第一次都答「三列」。

★★★☆☆ · 约 35 分钟 · 主考:叶子上的字典序、最左前缀、范围列之后、排序能不能免掉

这一份练的是

索引结构 用得上用不上

练过没有

登录之后可以记下「这道题我练过」,下次回来看得到是哪天练的。

练过的人写的心得

还没有人写。练完之后,说说你和模型聊出了什么 —— 哪一幕被问住了,哪个结论你后来改了。

登录之后可以写心得。

怎么用

这一批是学习型的:它会引导你,不会追到你说不出话为止。卡住时它先问你卡在哪一层(没听过 / 知道但不明白为什么 / 明白但用不上),再决定给什么;同一个点引导两次还不通才直接讲,讲完要你用自己的话复述一遍。

默认按 MySQL / InnoDB 讲 —— 这块的坑有一半是实现细节,聚簇索引、回表、间隙锁在别家不是这么回事。用 PostgreSQL 或者别家的照样能练,只要在第一句话里说一声,它会按你那家讲,并在结论不同的地方点出来。

怎么开始

  1. 挑一份,点开它,把提示词复制走。
  2. 新开一个空对话贴进去,第一句话先说你用的是哪家、哪个版本(不说就按 MySQL 8 讲)。
  3. 然后什么都别说,等它问第一个问题。

中途随时能喊的四个口令

  • 跳过 立刻进下一幕
  • 换个说法 这一处换个角度再讲一遍
  • 直说吧 讲完整答案,然后要我复述
  • 复盘 立刻跳到收尾,输出复盘卡片

三条坑

  • 末尾的底牌别自己先读 —— 那一栏「常见的想错」写的就是每一问的答案。
  • 准备好被追数字。「快一些」「省了 IO」会被当场打断:几行?几次?几倍?说得出结论说不出数字,就是背的。
  • 它开始夸你的时候,提醒它看「不许夸我」那条。引导不等于哄。

先做「联合索引的顺序」,它是这批的地基 —— 后面「锁加在索引记录上」「扫描行数为什么这么大」都要用到那句「叶子上是字典序」。线上正被并发问题咬着的,从「先查再改」开始;查询慢的,从「读了多少行」开始。