一条 UPDATE 锁了什么
UPDATE ... WHERE 一个没索引的列 —— 这时候「行锁」还是行锁吗?
Copiez la consigne, puis choisissez un modèle. Il joue l'examinateur et vous interroge acte par acte au lieu de vous donner la réponse.
Sur un téléphone où l'application est installée, le système l'ouvre directement. Dans WeChat, les liens n'ouvrent pas les applications externes : ouvrez-le d'abord dans un navigateur.
Le texte copié se termine par le corrigé dont le modèle se sert pour vous évaluer. Ne le lisez pas avant : ce qui compte, c'est de l'avoir déduit vous-même.
「InnoDB 是行锁」这句话缺了一个前提,而那个前提正是线上「一条 UPDATE 卡死全表」最常见的原因。这一份就是去把那个前提问出来。
第三幕会让你面对一件反直觉的事:一条不存在的记录,怎么锁? 你得先自己推出「不锁住它就挡不住别人插进来」,才轮到间隙这个词出场。
全程不接受「会锁住相关的行」这种说法 —— 它会打断你:把被锁住的记录一条条列出来,还有哪些区间。
Ce que celui-ci travaille
Ce texte dans le dépôt (la solution est à la fin de ce fichier — vous la verrez)
Déjà fait celui-ci ?
Connectez-vous pour noter que vous l'avez fait : la prochaine fois, vous verrez quel jour c'était.
Notes de ceux qui l'ont fait
Comment s'en servir
Cette série est du type apprentissage : elle guide, elle ne vous acculera pas. Quand vous bloquez, elle demande d'abord à quel niveau (jamais entendu / je sais mais pas pourquoi / je sais pourquoi mais je n'arrive pas à m'en servir), puis décide quoi donner. Elle n'explique qu'après avoir guidé deux fois, et vous demande ensuite de reformuler avec vos mots.
Par défaut, elle raisonne en MySQL / InnoDB — la moitié des pièges ici sont des détails d'implémentation, et l'index clusterisé, le retour à la table et les verrous d'intervalle ne fonctionnent pas pareil ailleurs. PostgreSQL ou autre convient : dites-le dans votre première phrase et elle suivra votre moteur en signalant là où les conclusions changent.
Comment démarrer
- Choisissez-en un, ouvrez-le, copiez l'invite.
- Collez-la dans une conversation vide et dites d'abord quel moteur et quelle version vous utilisez (sans précision, ce sera MySQL 8).
- Ensuite, ne dites plus rien et attendez sa première question.
Quatre mots-clés à lancer à tout moment
跳过Passer à l'acte suivant换个说法Reprendre ce point sous un autre angle直说吧Donner la réponse complète, puis me la faire reformuler复盘Passer directement à la fiche de bilan
Trois pièges
- Ne lisez pas le corrigé de la fin d'abord — la rubrique « erreurs de raisonnement fréquentes » contient la réponse à chaque question.
- Attendez-vous à devoir chiffrer. « Un peu plus rapide », « ça économise des I/O » est coupé net : combien de lignes ? combien de fois ? combien de fois plus vite ? Une conclusion sans chiffre est une réponse apprise par cœur.
- Dès qu'elle vous complimente, renvoyez-la à la règle « ne me félicite pas ». Guider n'est pas materner.
Commencez par l'index composite : c'est le socle de la série, « les verrous portent sur les enregistrements d'index » et « pourquoi lit-il autant de lignes » s'appuient tous deux sur sa phrase-clé. Si la concurrence vous mord en production, commencez plutôt par « lire puis modifier » ; si vos requêtes sont lentes, par le plan d'exécution.
Se connecter pour écrire une note.