联合索引的顺序
(user_id, status) 这个索引,单查 status 为什么用不上?
Скопируйте заготовку и выберите модель. Она будет вести себя как интервьюер и разбирать задачу с вами по действиям, а не выкладывать ответ.
На телефоне с установленным приложением система откроет само приложение. Внутри WeChat внешние приложения не открываются — сначала откройте ссылку в браузере.
В конце скопированного текста лежит разбор, по которому модель вас оценивает. Не читайте его заранее: ценно именно то, что вы дошли сами.
这一份是整个系列的地基:说不清叶子节点上是什么顺序的人,后面几份里「锁加在索引上」「扫描行数为什么这么大」都会跟着糊。
它不会给你「最左前缀」这四个字。它会让你先把六条记录按索引里的顺序抄一遍,然后一条条问哪些查询用得上 —— 你自己抄过那一串,规则就不用背了。
第三幕最值钱:索引是 (user_id, created_at, status),查询三个条件都写了 —— 有几列是真的用来定位的? 多数人第一次都答「三列」。
Что тренирует эта
Этот текст в репозитории (в конце того файла лежат карты на руках — вы их увидите)
Делали эту задачу?
Войдите, чтобы отметить, что задача пройдена: в следующий раз будет видно, когда это было.
Заметки тех, кто уже прошёл
Как этим пользоваться
Эта серия обучающая: она ведёт, а не загоняет в угол. Когда вы застряли, она сначала спрашивает, на каком слое (не слышал / знаю, но не знаю почему / знаю почему, но не применяю), и только потом решает, что дать. Объясняет напрямую лишь после двух попыток подвести, а затем просит пересказать своими словами.
По умолчанию рассуждает в терминах MySQL / InnoDB —— половина ловушек здесь это детали реализации, а кластерный индекс, обращение к таблице и gap-блокировки в других СУБД устроены иначе. PostgreSQL и любые другие тоже подойдут: скажите об этом первой фразой, и она будет следовать вашей СУБД, отмечая, где выводы расходятся.
С чего начать
- Выберите одну, откройте, скопируйте промпт.
- Вставьте в новый пустой чат и первой фразой скажите, какая у вас СУБД и версия (если не сказать, будет MySQL 8).
- Дальше ничего не говорите и ждите первого вопроса.
Четыре команды, их можно бросить в любой момент
跳过Сразу к следующей сцене换个说法Объясни это место с другой стороны直说吧Дай полный ответ, потом заставь меня пересказать复盘Сразу к итоговой карточке
Три ловушки
- Не читайте ключ в конце заранее —— раздел «частые заблуждения» и есть ответ на каждый вопрос.
- Готовьтесь к тому, что с вас потребуют цифры. «Немного быстрее», «экономит IO» обрывают на месте: сколько строк? сколько раз? во сколько раз? Вывод без цифры — заученный.
- Как только начнёт хвалить, напомните про правило «не хвали меня». Вести — не значит нянчить.
Начните с составного индекса: это фундамент серии, и «блокировки лежат на записях индекса», и «почему читается столько строк» опираются на его главную фразу. Если в бою кусается конкурентность — начните с «прочитал, потом записал»; если тормозят запросы — с плана выполнения.
Войти, чтобы написать заметку.