Je réalise que, selon la documentation de Pg ( http://www.postgresql.org/about/ ), on peut stocker un nombre illimité de lignes dans un tableau. Toutefois, quelle est la "règle empirique" pour le nombre de lignes utilisables, le cas échéant ?
Le contexte : Je veux stocker des relevés quotidiens pendant quelques décennies pour 13 millions de cellules. Cela donne 13 M * (366|365) * 20 ~ 9,5e10, soit 95 B lignes (en réalité, environ 120 B lignes).
Donc, en utilisant le partitionnement des tables, j'ai créé une table principale, puis des tables héritées par année. Cela divise les lignes à ~ 5.2 B lignes par table.
Chaque rangée est composée de 9 SMALLINTs et de deux INTs, soit 26 octets. Ajoutez à cela, l'overhead Pg de 23 octets par ligne, et nous obtenons 49 octets par ligne. Ainsi, chaque table, sans PK ou autre index, pèsera environ 0,25 To.
Pour commencer, je n'ai créé qu'un sous-ensemble des données ci-dessus, c'est-à-dire seulement pour environ 250 000 cellules. Je dois effectuer un certain nombre de réglages (créer des index appropriés, etc.), mais les performances sont vraiment terribles pour le moment. En outre, chaque fois que j'ai besoin d'ajouter des données, je dois abandonner les clés et les recréer. Le point positif est qu'une fois que tout sera chargé, ce sera une base de données en lecture seule.
Des suggestions ? Une autre stratégie de partitionnement ?
0 votes
Sans un réglage approprié, les performances doivent être mauvaises, aucune base de données ne correspondra jamais à votre situation, ni à la mienne. Trouvez d'abord quels sont les problèmes, puis vous pourrez commencer à les résoudre.
0 votes
Et si vous résumez vos données, avez-vous vraiment besoin de cette granularité ?
1 votes
Pcent - oui, j'ai besoin de cette granularité. Frank Heikens - oui, j'ai besoin de régler la base de données, et je suis en train d'identifier les problèmes. Ma question était de nature préemptive, pour des tables de base de données de la taille dont je parle.
0 votes
Sur quel type de matériel fonctionne-t-il ?
0 votes
Le matériel est un double Xeon 3 GHz avec 12 Go de RAM. Les données sont stockées sur un RAID attaché (RAID 5), donc le RAID n'est pas aussi rapide qu'il pourrait l'être. Pourtant, les performances semblent être beaucoup plus lentes que ce à quoi je m'attendais (de manière non scientifique).
1 votes
Vous avez décrit vos données de manière très détaillée, mais sans aucune indication sur la manière dont vous les utilisez. Quel genre de demandes de renseignements Avez-vous essayé ? Quelles étaient les performances attendues et réelles ? Affichez la sortie EXPLAIN ANALYZE de ces requêtes.
0 votes
À titre d'information, si vous utilisez les "grandes lignes", il peut y avoir une limite de 4 Go pour les lignes : wiki.postgresql.org/wiki/TOAST