Optimiser la conception logique
Le niveau logique concerne la structure de la requête et des tables elles-mêmes. Essayez de maximiser cela en premier. L'objectif est d'accéder au moins de données possible au niveau logique.
- Avoir les requêtes SQL les plus efficaces
- Concevoir un schéma logique qui prend en charge les besoins de l'application (par exemple, le type des colonnes, etc.)
- Compromis de conception pour prendre en charge certains cas d'utilisation mieux que d'autres
- Contraintes relationnelles
- Normalisation
Optimiser la conception physique
Le niveau physique traite des considérations non logiques, telles que le type d'index, les paramètres des tables, etc. L'objectif est d'optimiser l'IO qui est toujours le goulot d'étranglement. Accordez chaque table pour l'adapter à ses besoins. Une petite table peut être chargée en permanence dans le cache du SGBD, une table avec un faible taux d'écriture peut avoir des paramètres différents de la table avec un taux de mise à jour élevé pour prendre moins d'espace disque, etc. Selon les requêtes, différents index peuvent être utilisés, etc. Vous pouvez données dénormalisées de manière transparente avec des vues matérialisées, etc.
- Paramètres des tables (taille d'allocation, etc.)
- Index (combinés, types, etc.)
- Paramètres à l'échelle du système (taille du cache, etc.)
- Partitionnement
- Dénormalisation
Essayez d'abord d'améliorer la conception logique, puis la conception physique. (La frontière entre les deux est cependant vague, nous pouvons donc discuter de ma catégorisation).
Optimiser la maintenance
La base de données doit être exploitée correctement pour rester aussi efficace que possible. Cela inclut quelques tâches de maintenance qui peuvent avoir un impact sur les performances, par exemple
- Tenir les statistiques à jour
- Re-séquencer périodiquement les tables critiques
- Maintenance du disque
- Tous les éléments du système pour avoir un serveur qui déchire