Senior Software Developer | OCI Associate | Java & Spring Ecosystem | J'apporte des solutions face à des problématiques business grâce à la Tech et à certaines pratiques
Comment j'ai optimisé mes requêtes Spring Data (JPA) pour gagner en performance
Vous utilisez encore les méthodes dérivées pour toutes vos requêtes ?
Voici comment passer à l'étape supérieure :
↳ Avant : Méthode dérivée de Spring Data JPA
Optional findByFirstNameAndLastNameAndCityAndActiveTrue(
String firstName, String lastName, String city
);
↳ Après : Version optimisée avec @Query
@Query("SELECT u FROM User u WHERE u.firstName = :firstName " +
"AND u.lastName = :lastName AND u.city = :city " +
"AND u.active = true")
Optional findActiveUsersByNames(
@Param("firstName") String firstName,
@Param("lastName") String lastName,
@Param("city") String city
);
🎯 Pour optimiser vos requêtes :
1. Identifiez vos méthodes dérivées complexes
2. Convertissez-les en @Query
3. Sélectionnez uniquement les colonnes nécessaires
4. Ajoutez des index si besoin
⚡️ Résultats :
- Code plus lisible
- Meilleures performances
- Plus facile à maintenir
PS : Je privilège @Query dès que j'ai une requête qui dépasse 2-3 conditions ou nécessite des optimisations.
Comment vous gérez vos requêtes complexes ? Partagez vos astuces d'optimisation !
🙏
Ingénieur logiciel indépendant | Java, programmation, développement logiciel
9 months ago
Moi à la place je prefere CriteriaAPI et j’index mes tables . Ma performance est revue à la hausse.
Ou encore une robuste Structure de données :
Hier par Exemple j’ai commencé un petit projet ou je veux me passer de ces requêtes et j’ai essayé un procedé : je créé une B-Tree pour minimiser les allés et venues dans la base de données .
Ma B-Tree se charge à la source une fois et reste à l’ecoute d’une nouvelle modification. Ce qui me permet de faire mes fouilles en mémoire (C’est tres conséquent avec son système de groupage) ca allege la tache .