Salutations,
Je travaille sur un logiciel qui enregistre les entrées (et le marquage associé) dans une base de données PostgreSQL pour le stockage et la récupération. Nous ne mettons jamais à jour les données une fois qu'elles ont été insérées ; nous pouvons les supprimer lorsque l'entrée devient trop ancienne, mais cela est fait au maximum une fois par jour. Les entrées stockées peuvent être récupérées par les utilisateurs.
L'insertion de nouvelles entrées peut se faire assez rapidement et régulièrement, de sorte que la base de données contient généralement plusieurs millions d'éléments.
Les tables utilisées sont assez simples : une table pour les identifiants, le contenu brut et la date d'insertion, et une table stockant les balises et leurs valeurs associées à un identifiant. Les recherches des utilisateurs portent principalement sur les valeurs des balises, de sorte que les SELECTs consistent généralement en des requêtes JOIN sur les ids des deux tables.
En résumé :
- 2 tables
- Beaucoup d'INSERT
- pas d'UPDATE
- quelques DELETE, une fois par jour au maximum
- quelques SELECT générés par les utilisateurs avec JOIN
- grande quantité de données
Quelle serait la configuration optimale (logicielle et matérielle, je suppose par exemple que RAID10 pourrait être utile) pour mon serveur PostgreSQL, compte tenu de ces exigences ? Par optimale, j'entends une configuration qui permet d'effectuer des requêtes SELECT en un temps raisonnablement court.
Je peux fournir plus d'informations sur la configuration actuelle (tables, index, etc.) si nécessaire.