CouchDB utilise a cool pattern qui peut être utilisé dans une multitude d'autres scénarios. Je parle de l'indice B-tree persistant de la carte/réduire les résultats. L'idée est de précalculer les données agrégées et de les stocker à différents niveaux de l'index B-tree. L'index peut alors être utilisé pour interroger efficacement l'agrégat sans avoir à réagréger toutes les données tout le temps. Ensuite, si une valeur de niveau feuille change, seul le chemin ascendant à travers l'arbre doit être recalculé. Par exemple, si les données sont exprimées en prix dans le temps, l'index peut stocker le SUM et le COUNT d'éléments aux niveaux du jour, du mois et de l'année. Ensuite, si quelqu'un veut interroger le prix moyen depuis le début de l'année, tout ce que vous avez à faire est de résumer tous les SUM et les COUNT pour tous les mois complets depuis le début de l'année, plus tous les jours disponibles pour le dernier mois. par le total COUNT. Si un prix antérieur doit changer, le changement doit se propager à travers l'indice, mais seules les valeurs du jour et du mois et de l'année doivent être mises à jour, et même alors les valeurs des autres jours et des autres mois de l'année peuvent être réutilisées. calcul.Quel est le nom générique de cette technique utilisée par CouchDB pour indexer des données agrégées?
Quel est le nom générique de cette approche? Est-ce que quelque chose de similaire existe dans l'un des RDBMS populaires? Une expérience avec l'utilisation de cela dans la pratique?