D'accord, nous allons voir.
pêche au chalut à travers une grande table de commentaires pour trouver ceux pour le poste en question serait coûteuse
Pourquoi pensez-vous que ce serait cher? Parce que vous croyez peut-être qu'une recherche linéaire sera faite à chaque fois en prenant le temps O (n). Pour un milliard de commentaires, un milliard d'itérations sera fait.
Supposons maintenant qu'un arbre de recherche binaire est construit pour comment_ID. Pour rechercher un commentaire, vous avez besoin du temps de log (n) [base 2]. Donc, même pour 1 milliard de commentaires, seulement environ 32 itérations seront nécessaires.
Considérons maintenant un BST légèrement modifié, où chaque nœud contient k éléments au lieu de 1 (dans une liste) et a k + 1 nœuds enfants. Les mêmes propriétés de BST sont également suivies dans cette structure de données. Ce que nous avons ici s'appelle un arbre B. More reading: GeeksForGeeks - B Tree Introduction
Pour un arbre B, le temps de recherche est log (n) [base k]. Par conséquent, si k = 10, pour 1 milliard d'entrées, seulement 9 itérations seront nécessaires.
Toutes les bases de données enregistrent les index des clés primaires dans les arbres B. Par conséquent, la tâche indiquée ne serait pas coûteuse, et vous devriez aller de l'avant et concevoir la base de données comme il semblait évident. PS: Vous pouvez créer un index sur n'importe quelle colonne de la table. Par défaut, les index de clé primaire sont déjà stockés. Mais attention, ne faites pas d'index inutiles car ils prennent de l'espace disque.
duplication possible de [MYSQl Optimiser le tableau des articles de blog avec des commentaires] (http://stackoverflow.com/questions/3297583/mysql-optimize-table-of-blog-posts-with-comments) –
"meilleure façon" ? Plus petit? La plupart des fonctionnalités Oracle? Que signifie "meilleur" dans ce contexte? –
@S. Lott: Je vote pour "la plupart des fonctionnalités Oracle". Plus il y a de fonctionnalités, mieux c'est! : P – FrustratedWithFormsDesigner