database-optimizer
Optimiser les performances de la base de données
Les requêtes lentes et les mauvaises performances de la base de données peuvent paralyser la réactivité des applications. Cette compétence fournit des conseils d'expert sur l'optimisation des requêtes, les stratégies d'indexation et les architectures évolutives pour améliorer considérablement les performances de la base de données.
تنزيل ZIP المهارة
رفع في Claude
اذهب إلى Settings → Capabilities → Skills → Upload skill
فعّل وابدأ الاستخدام
اختبرها
استخدام "database-optimizer". Optimize this slow query: SELECT * FROM orders o JOIN customers c ON o.customer_id = c.id WHERE c.status = 'active' AND o.created_at > '2024-01-01'
النتيجة المتوقعة:
Analyse :
1. **Problème** : SELECT * récupère des colonnes inutiles ; pas d'index sur created_at ; le filtre status peut ne pas être sélectif
Recommandations :
- Ajouter un index couvrant : CREATE INDEX idx_orders_customer_date ON orders(customer_id, created_at) INCLUDE (status, total)
- Remplacer SELECT * par des colonnes spécifiques
- Envisager un partitionnement par date si les tables sont volumineuses
- Ajouter un index sur customers.status si fréquemment filtré
استخدام "database-optimizer". How do I implement caching for a frequently-accessed database query?
النتيجة المتوقعة:
Approche de mise en cache multi-niveaux :
1. **L1 (Application)** : Cache en mémoire (par ex. Go map, Python functools.lru_cache) pour les données fréquemment accédées
2. **L2 (Distribué)** : Redis avec expiration basée sur TTL
3. **Stratégie de cache** : Utiliser le pattern cache-aside - vérifier le cache d'abord, charger depuis la DB en cas d'échec, stocker dans le cache
4. **Invalidation** : Définir un TTL approprié (par ex. 5-15 minutes) ou utiliser l'invalidation pilotée par les événements
5. **Conception des clés** : Utiliser des clés composites comme 'user:123:orders' pour des entrées de cache spécifiques
التدقيق الأمني
آمنPrompt-only skill with no executable code. Static analysis scanned 0 files (0 lines) and detected no suspicious patterns. This is a pure instructional prompt providing database optimization guidance. No scripts, network calls, filesystem access, environment access, or external commands are present. No prompt injection attempts detected.
درجة الجودة
ماذا يمكنك بناءه
Développeur d'application résolvant des requêtes lentes
Un développeur remarque que son application a des chargements de page lents dus aux requêtes de base de données. La compétence fournit une analyse étape par étape des modèles de requêtes et des recommandations d'optimisation.
DBA concevant une stratégie d'indexation
Un administrateur de base de données doit concevoir une stratégie d'indexation pour une application e-commerce à fort trafic. La compétence fournit des conseils complets sur les types d'index et l'ordre des colonnes.
Architecte planifiant la mise à l'échelle de la base de données
Un architecte logiciel planifie la mise à l'échelle d'une application monolithique pour gérer une charge accrue. La compétence fournit des conseils sur le partitionnement, le sharding et les stratégies de cache.
جرّب هذه الموجهات
Help me optimize this slow SQL query: [PASTE YOUR QUERY]. Analyze the query structure and suggest improvements for better performance.
Design an indexing strategy for our [DATABASE TYPE] database that handles [DESCRIBE YOUR WORKLOAD - e.g., high read, frequent updates]. Our main query patterns include [LIST QUERY PATTERNS].
We are experiencing N+1 query problems in our [ORM NAME] application when loading [DESCRIBE ENTITIES]. The current code does [DESCRIBE CURRENT PATTERN]. How can we optimize this?
Our database is experiencing [DESCRIBE PROBLEM - e.g., high write volume, slow queries under load]. Current setup: [DESCRIBE CURRENT ARCHITECTURE]. What scaling and optimization strategies would you recommend?
أفضل الممارسات
- Toujours mesurer avant d'optimiser - utilisez EXPLAIN ANALYZE pour comprendre les performances réelles des requêtes plutôt que de deviner
- Concevoir les index en fonction des modèles de requêtes réels, pas des connaissances théoriques - profilez les requêtes les plus fréquentes de votre application
- Implémenter une surveillance complète avec des logs de requêtes lentes et des bases de référence de performance pour détecter les régressions tôt
تجنب
- Indexer chaque colonne 'au cas où' - cela augmente la surcharge d'écriture et le stockage sans bénéfice proportionnel
- Ignorer les requêtes N+1 dans les ORM - utilisez toujours le chargement eager, les requêtes par lots ou les patterns DataLoader
- Appliquer des conseils d'optimisation génériques sans analyser vos modèles de charge de travail spécifiques et la distribution de vos données