Est-ce que quelqu'un aurait un lien (ou quelques explications) à me fournir afin d'en apprendre plus sur les INDEX d'une bdd, leurs propriétés, leurs avantages, leurs inconvénients, quand et comment les utiliser, etc... ?
Je ne crois pas que le SDZ traite la question et je ne trouve rien de bien parlant sur Google.
Salut ! Merci pour le lien et l'énigme
Évidemment c'est plus simple de consulter un dictionnaire par ordre alphabétique, mais quand j'effectue des requêtes je ne demande jamais à lire l'intégralité de la table. La plupart du temps je fais des recherches de type WHERE id = $id.
Ce que je n'arrive pas vraiment à comprendre (même après avoir lu l'article posté ci-dessus) c'est les différences entre PRIMARY, UNIQUE, INDEX et FULLTEXT et leur influence sur mes requêtes.
Je viens de sortir un chapitre sur les index dans la partie beta-test de mon tutoriel. Normalement tout y est expliqué, j'espère que ça t'aidera. N'hésite pas à commenter sur le sujet de ma beta si y a des trucs qui sont pas clairs, ou si tu voudrais des explications supplémentaires sur tel ou tel point. Ca m'aidera à parfaire mon tuto
Y a sûrement encore des fautes d'orthographes, sorry pour ça, j'ai relu deux-trois fois mais bon...
mais quand j'effectue des requêtes je ne demande jamais à lire l'intégralité de la table. La plupart du temps je fais des recherches de type WHERE id = $id.
Qu'est-ce que tu penses que ton SGBDR fait lorsque tu lui demandes une telle requête ? Comment fait-il pour savoir si la ligne que tu recherches est la première, la dernière ou quelque part entre les deux ? Comment fait-il pour savoir qu'il n'y a qu'une seule ligne à trouver, ou plusieurs ?
C'est les index qui aident à optimiser les performances. Il permet de classer, en quelque sorte, les tables pour pouvoir aller recueillir l'information le plus rapidement possible. Quand tu fais une requête du genre WHEREid=?, ton SGBDR parcourt l'index pour pouvoir trouver la ou les lignes qui correspondent.
C'est pour ça que Lord Casque Noir te parle de dictionnaire. Imagine que tu as un sac qui contient tous les mots du dictionnaire et que je te demande de trouver le mot "système". Tu sais que chaque mot se retrouve une seule fois, cela veut dire que dès que tu tombes dessus, tu peux t'arrêter de chercher. Par contre, tu vas devoir piger chaque mot dans le sac jusqu'à ce que tu tombes dessus. Ça peut être très long.
Le dictionnaire agit donc comme un index. Il classe les mots par ordre alphabétique. Maintenant, quand je te demande d'aller chercher le mot, pas besoin de tous les regarder. Tu vas directement aux mots qui commencent par "s", et tu trouves le mot.
Merci pour tes explications Fayden Je commence à comprendre l'intérêt des Index, donc je vais sérieusement me pencher sur la question.
Taguan, ton tuto tombe à pique et il a l'air très détaillé ! Je prendrai le temps de le lire attentivement et je laisserai un commentaire
Merci pour votre aide J'ai bien étudié la question et je comprends bien mieux le sujet ! En fait je les utilisais déjà correctement sans vraiment savoir pourquoi je le faisais
Je marque le topic comme Résolu !
Les INDEX...
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Tutoriel complet MySQL !