Optimaliseer het logische ontwerp
Het logische niveau gaat over de structuur van de query en tabellen zelf. Probeer dit eerst te maximaliseren. Het doel is om zo min mogelijk gegevens op logisch niveau te benaderen.
- De meest efficiënte SQL-query's hebben
- Ontwerp een logisch schema dat de behoefte van de applicatie ondersteunt (bijv. type kolommen, enz.)
- Ontwerp afweging om sommige use-cases beter te ondersteunen dan andere
- Relationele beperkingen
- Normalisatie
Optimaliseer het fysieke ontwerp
Het fysieke niveau houdt zich bezig met niet-logische overwegingen, zoals type indexen, parameters van de tabellen, enz. Het doel is om de IO te optimaliseren die altijd de bottleneck is. Stem elke tafel af op zijn behoefte. Een kleine tabel kan permanent worden geladen in de DBMS-cache, een tabel met een lage schrijfsnelheid kan andere instellingen hebben dan een tabel met een hoge updatesnelheid om minder schijfruimte in te nemen, enz. Afhankelijk van de query's kunnen verschillende indexen worden gebruikt, enz. U kunt gedenormaliseerde gegevens transparant met gematerialiseerde weergaven, enz.
- Tabellenparemeters (toewijzingsgrootte, enz.)
- Indexen (gecombineerd, typen, enz.)
- Systeembrede parameters (cachegrootte, enz.)
- Partitioneren
- Denormalisatie
Probeer eerst het logische ontwerp te verbeteren, daarna het fysieke ontwerp. (De grens tussen beide is echter vaag, dus we kunnen discussiëren over mijn categorisering).
Het onderhoud optimaliseren
Database moet correct worden beheerd om zo efficiënt mogelijk te blijven. Dit omvat enkele onderhoudstaken die van invloed kunnen zijn op de prestatie, bijv.
- Houd statistieken up-to-date
- Kritieke tabellen periodiek opnieuw rangschikken
- Schijfonderhoud
- Alle systeemdingen om een server te hebben die rockt