- Es wird eine Technik diskutiert, mit der sich Speicherplatz in einer Datenbank freigeben lässt, ohne Indizes oder Daten zu löschen.
- Ungenutzte Indizes werden identifiziert und gelöscht, um Speicherplatz freizugeben.
- Tabellen und Indizes werden neu aufgebaut, um unnötigen Speicherplatz zu bereinigen.
- In PostgreSQL 13 wurde die Deduplizierung für B-Tree-Indizes eingeführt, wodurch sich die Größe von Indizes mit doppelten Werten reduzieren lässt.
- Mit der Erweiterung
pg_repack können Tabellen neu aufgebaut werden, um Bloat ohne Downtime zu verringern.
- In PostgreSQL werden auch
NULL-Werte indiziert und belegen dadurch unnötig Speicherplatz.
- Partielle Indizes werden genutzt, um die Indexgröße zu reduzieren, indem
NULL-Werte ausgeschlossen werden.
- Es werden Abfragen und Befehle bereitgestellt, um diese Arbeiten auszuführen.
- Die genannten Techniken können die Speichernutzung optimieren und die Datenbankleistung verbessern.
- In einer großen, mit Django entwickelten Anwendung werden partielle Indizes verwendet, um den Speicherplatz zu optimieren und die Leistung zu verbessern.
- Partielle Indizes können nicht nur
NULL-Werte, sondern auch Werte ausschließen, die häufig oder überhaupt nicht abgefragt werden.
- Durch die Umwandlung eines bestimmten Index in einen partiellen Index, der
NULL-Werte ausschließt, lassen sich etwa 1,3 GB Speicherplatz einsparen.
- Das Löschen von Indizes auf Replikaten kann zusätzlichen Speicherplatz freigeben.
- Es werden Tipps gegeben, wie sich in Django die implizite Erstellung von Indizes für Fremdschlüssel verhindern lässt und wie bestehende vollständige Indizes ohne Downtime oder Leistungseinbußen in partielle Indizes migriert werden können.
- Es wird betont, wie wichtig es ist, Indexdefinitionen zu optimieren, um Speichereffizienz und Leistung zu maximieren.
1 Kommentare
Hacker-News-Kommentar
NULL-Werten in Fremdschlüsselindizes hilfreich sein.NULL-Werte sind nicht allgemein bekannt.