- Cet article traite de techniques permettant de récupérer de l’espace de stockage dans une base de données sans supprimer d’index ni de données.
- Les index inutilisés sont identifiés puis supprimés afin de libérer de l’espace de stockage.
- Les tables et les index sont reconstruits pour éliminer l’espace inutile.
- PostgreSQL 13 a introduit la déduplication des index B-Tree, ce qui permet de réduire la taille des index contenant des valeurs dupliquées.
- L’extension
pg_repack permet de reconstruire des tables pour réduire le bloat sans downtime.
- Dans PostgreSQL, les valeurs NULL sont également indexées et occupent donc de l’espace inutilement.
- Des index partiels sont utilisés pour réduire la taille des index en excluant les valeurs NULL.
- Des requêtes et des commandes sont fournies pour effectuer ces opérations.
- Les techniques mentionnées peuvent optimiser l’utilisation de l’espace de stockage et améliorer les performances de la base de données.
- Dans une application de grande taille construite avec Django, des index partiels sont utilisés pour optimiser le stockage et améliorer les performances.
- Les index partiels peuvent exclure non seulement les valeurs nulles, mais aussi des valeurs rarement, voire jamais, interrogées.
- Convertir un index donné en index partiel excluant les valeurs nulles permet d’économiser environ 1,3 Go de stockage.
- Supprimer des index sur des réplicas peut libérer encore plus d’espace de stockage.
- Des conseils sont donnés pour empêcher Django de créer implicitement des index sur les clés étrangères et pour migrer des index complets existants vers des index partiels sans downtime ni dégradation des performances.
- L’importance d’optimiser la définition des index afin de maximiser l’efficacité du stockage et les performances est soulignée.
1 commentaires
Commentaire Hacker News