Un index est une structure triée séparée, en général un arbre B, qui associe des valeurs de colonne à des emplacements de lignes pour que le moteur puisse chercher directement au lieu de tout parcourir. Il accélère les lectures qui filtrent ou trient sur ces colonnes. Il vous coûte à l'écriture, puisque chaque insertion, mise à jour et suppression doit le maintenir, et il coûte du stockage. Les colonnes peu sélectives et les index que rien n'interroge sont en général une perte nette.
Pourquoi les recruteurs posent cette question
Les index sont l'outil au plus fort effet de levier disponible pour la plupart des ingénieurs et le plus facile à appliquer en culte du cargo. Le recruteur vérifie que vous comprenez le côté écriture de l'arbitrage, que vous savez que la sélectivité détermine si le planificateur utilisera même l'index, et que vous savez expliquer pourquoi indexer chaque colonne n'est pas une stratégie. Ça ouvre aussi la porte à la planification de requêtes.
Comment structurer votre réponse
- Décrivez l'index comme une structure de recherche triée avec des pointeurs vers les lignes.
- Expliquez le bénéfice en lecture en termes de recherche directe contre parcours complet.
- Nommez explicitement les coûts en écriture et en stockage.
- Donnez un cas où le planificateur ignore l'index quand même.
Exemple de réponse
Un index est essentiellement une copie triée d'une ou plusieurs colonnes avec des pointeurs vers les lignes, en général un arbre B, pour que le moteur puisse faire une recherche dichotomique au lieu de lire chaque page. Ça transforme un filtre sur une grosse table d'un parcours séquentiel en une poignée de lectures de pages. Le coût, c'est que chaque écriture doit mettre l'index à jour aussi, donc une table avec huit index paie huit fois à l'insertion, et les chargements en masse ralentissent nettement. L'autre chose que je surveille, c'est la sélectivité. Si une colonne est un booléen vrai pour quatre-vingt-dix pour cent des lignes, le planificateur va en général simplement parcourir, parce qu'un accès aléatoire à autant de lignes coûte plus cher qu'une lecture séquentielle. J'ai eu un cas où quelqu'un avait ajouté un index sur une colonne de statut à trois valeurs et rien ne s'est amélioré. Ce qui a réellement corrigé le problème, c'est un index composite sur tenant id et created at, correspondant à la fois au filtre et au tri, pour que la base puisse chercher directement puis lire dans l'ordre sans étape de tri séparée.
Vous passez cet entretien bientôt ? GhostPilot écoute votre appel en direct, repère la question dès qu'elle est posée et affiche une réponse structurée à l'écran en temps réel. Essayez-le lors de votre prochain entretien blanc, ou prenez un Session Pass à $29, sans abonnement, pour le jour J.
Voir comment ça marcheQuestions de relance à prévoir
- Pourquoi l'ordre des colonnes compte-t-il dans un index composite ?
- Qu'est-ce qu'un index couvrant vous apporte ?
- Comment sauriez-vous si le planificateur utilise votre index ?
Autres questions pour Ingénieur logiciel
Votre recruteur posera sa propre version de celle-ci. Collez votre véritable fiche de poste dans le Question Predictor gratuit et obtenez les 20 questions que ce poste a le plus de chances de poser, avec ce que chacune cherche vraiment à sonder.
Prédire mes questions