Mise en situation : la base de données sature
15 enquêtes sur une base de données à bout de souffle : lectures répétées, index manquants ou en trop, retard de réplication, points chauds, verrous, pagination, ruée sur le cache. Pour chacune, la cause puis la solution typique, avec l'autre solution et le piège.
- 37 cartes
- 3 thèmes
- Gratuit
Le programme, thème par thème
Le poids de chaque thème suit celui que lui donne l'examen.
- Lectures
- Écritures
- Exploitation
Quelques cartes du deck
La base est à 100 %, toujours pour les mêmes produits
- CPU de la base à 100 %
- 95 % des requêtes sont des lectures
- Le top 100 des produits fait 80 % des lectures
Quelle est la cause la plus probable ?- Il manque des serveurs applicatifs
- La base relit sans cesse les mêmes données
- Les écritures saturent la base
- Le disque de la base est plein
Voir la réponse
La base relit sans cesse les mêmes données
Les lectures dominent et se concentrent sur peu de données : elles n'ont pas besoin d'aller à la base à chaque fois.
La base est à 100 %, toujours pour les mêmes produits
Cause : la base relit sans cesse les mêmes données.
Quelle est la solution typique ?- Un cache devant la base : lire d'abord le cache, sinon la base, puis remplir le cache (cache-aside)
- Ajouter des serveurs applicatifs
- Partitionner la base par date
- Ajouter un CDN pour les images
Voir la réponse
Un cache devant la base : lire d'abord le cache, sinon la base, puis remplir le cache (cache-aside)
Les données les plus demandées sont servies depuis la mémoire ; la base ne voit plus qu'une petite partie des lectures.
Autre solution : Des réplicas en lecture qui se partagent les lectures.
Piège : Quand un produit change, son entrée en cache doit être invalidée, sinon on affiche un prix périmé.« Mes commandes » met 6 secondes
- La table des commandes a 10 millions de lignes
- La requête filtre sur l'identifiant du client
- Le plan d'exécution montre un parcours complet de la table
Quelle est la cause la plus probable ?- La base manque de mémoire
- Le réseau est saturé
- Il manque un index sur la colonne filtrée
- Il y a trop de clients connectés
Voir la réponse
Il manque un index sur la colonne filtrée
Sans index, la base lit les 10 millions de lignes pour en trouver quelques-unes.