J'utilise db_stat pour obtenir le nombre approximatif d'enregistrements dans le BDB (pour éviter l'itération sur la base de données entière):Est-il possible d'obtenir la taille record moyenne Berkeley DB
[[email protected] magic]$ db_stat -d random.db
Thu Mar 3 13:38:25 2016 Local time
61561 Hash magic number
8 Hash version number
Little-endian Byte order
Flags
643 Number of pages in the database
4096 Underlying database page size
0 Specified fill factor
2340 Number of keys in the database
2340 Number of data items in the database
299 Number of hash buckets
303540 Number of bytes free on bucket pages (75% ff)
15 Number of overflow pages
39282 Number of bytes free in overflow pages (36% ff)
114 Number of bucket overflow pages
322730 Number of bytes free in bucket overflow pages (30% ff)
0 Number of duplicate pages
0 Number of bytes free in duplicate pages (0% ff)
1 Number of pages on the free list
Est-il possible d'obtenir en moyenne taille d'enregistrement aussi bien?
Je suppose que je peux utiliser les informations ci-dessous pour obtenir la taille globale:
643 Number of pages in the database
4096 Underlying database page size
643 * 4096 = 2633728 octets (correspond à la taille du fichier) et obtenir la taille d'enregistrement approximative 2633728/2340 = 1125
Donc, ma question - l'utilisation d'informations supplémentaires à partir de info db_stat me donnerait un résultat plus précis?
Merci, cela a du sens. Y a-t-il de la documentation à ce sujet? –
Je ne trouve rien qui décrive spécifiquement ce que vous cherchez. Le concept de pages de débordement de différents types et la façon dont les pages sont utilisées dans une base de données peuvent être traités de manière générale. Ainsi, vous trouverez peut-être des réponses dans un manuel de base de données tel que _Transaction Processing_ de Gray et Reuter. –