Optimieren Sie das logische Design
Auf der logischen Ebene geht es um die Struktur der Abfrage und der Tabellen selbst. Versuchen Sie, dies zuerst zu maximieren. Ziel ist es, auf logischer Ebene auf so wenige Daten wie möglich zuzugreifen.
- Die effizientesten SQL-Abfragen haben
- Entwerfen Sie ein logisches Schema, das die Anforderungen der Anwendung unterstützt (z. B. Art der Spalten usw.)
- Design-Kompromiss, um einige Anwendungsfälle besser zu unterstützen als andere
- Beziehungsbeschränkungen
- Normalisierung
Optimieren Sie das physische Design
Die physische Ebene befasst sich mit nicht logischen Überlegungen, wie z. B. Art der Indizes, Parameter der Tabellen usw. Ziel ist die Optimierung des IO, der immer der Flaschenhals ist. Passen Sie jeden Tisch an seine Bedürfnisse an. Kleine Tabellen können dauerhaft in den DBMS-Cache geladen werden, Tabellen mit niedriger Schreibrate können andere Einstellungen haben als Tabellen mit hoher Aktualisierungsrate, um weniger Speicherplatz zu belegen usw. Je nach Abfrage können andere Indizes verwendet werden usw. Sie können denormalisierte Daten transparent mit materialisierten Ansichten usw.
- Tabellenparameter (Zuweisungsgröße usw.)
- Indizes (kombiniert, Typen usw.)
- Systemweite Parameter (Cachegröße etc.)
- Partitionierung
- Denormalisierung
Versuchen Sie zuerst, das logische Design zu verbessern, dann das physische Design. (Die Grenze zwischen beiden ist jedoch vage, sodass wir über meine Kategorisierung streiten können).
Optimieren Sie die Wartung
Die Datenbank muss korrekt betrieben werden, um so effizient wie möglich zu bleiben. Dazu gehören einige Wartungsarbeiten, die sich auf die Leistung auswirken können, z. B.
- Statistiken aktuell halten
- Ordnen Sie kritische Tabellen regelmäßig neu
- Festplattenwartung
- Alles Systemkram, um einen Server zu haben, der rockt