Kacam.net

Voir le monde

Bases de données : un morceau à la fois

Pas découpé en « optimisation des index / transactions / réglages » — un corrigé pour un sujet aussi large ne dirait que « attention à la sélectivité, attention aux verrous ». Ici on découpe fin : l'ordre des colonnes d'un index composite, ce qu'un UPDATE verrouille réellement, ce que fait OFFSET à cette étape.

Ces consignes n'existent pour l'instant qu'en 简体中文.

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

  1. Choisissez-en un, ouvrez-le, copiez l'invite.
  2. Collez-la dans une conversation vide et dites d'abord quel moteur et quelle version vous utilisez (sans précision, ce sera MySQL 8).
  3. 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.

Index

联合索引的顺序
(user_id, status) 这个索引,单查 status 为什么用不上?
★★★☆☆ · environ 35 min
一次查询读了几棵树
一次查询到底读了几棵树、回表几次?
★★★☆☆ · environ 30 min
Ces prompts sont open source Le texte est maintenu dans le dépôt public kacam-net/hero-prompts. Si l'un d'eux ne pousse pas assez loin, ou s'il manque une ligne à sa solution, allez le corriger : sa mise en ligne ici est une autre décision, prise par le catalogue de ce côté.