一次查询读了几棵树
一次查询到底读了几棵树、回表几次?
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.
「覆盖索引可以避免回表」这句话谁都背得出,但它省掉的是几次、每次贵在哪,多数人没算过。这一份全程逼数字:命中 100 行,回表 100 次,随机还是顺序。
顺带解决两个日常问题:为什么不该写 SELECT *(比「浪费带宽」实在得多的那个理由),以及用 UUID 当主键除了体积还会多出什么。
最后一幕问代价:这张表写入 QPS 3000,为了覆盖加一个四列索引,每次写多做了什么。
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.