La plupart des utilisateurs ne connaissent pas ou peu les avantages et les inconvénients du Type ENUM proposé par la base de données MySQL. Résultat: par peur de l’inconnu, les développeurs n’utilisent tout simplement pas cette fonctionnalité qui permet pourtant une amélioration significative des performances (dans certains cas) sans perdre en simplicité. Opposé à la contrainte CHECK connu par nos amis ORACLE, son utilisation et son fonctionnement est très différent, et ces 2 fonctionnalités ne font tout simplement pas la même chose. Cet article devrait vous permettre de savoir dans quel cas il est intéressant d’utiliser le type ENUM, et surtout dans quel cas ne pas utiliser le type ENUM.
Archives du mot-clef Sql
Performance de la fonction SQL batchUpdate de Spring
Cette semaine, j’ai du mettre à jour un batch d’import de données d’un fichier plat dans une base de données. L’optimisation de ce script n’ayant jamais été une priorité, le batch importait environ 60000 lignes et prenait entre 15 et 20 minutes. En quelques ajustement, j’ai réussit à importer plusieurs centaines milliers de lignes en à peine quelques minutes. Aussi étonnant que cela puisse paraître, l’optimisation d’un tel script ne nécessite pas de connaissances particulières ni même de mettre en place une solution de multi-threading utilisant les ordinateurs de la NASA ou ceux de Google. Tout est proposé de manière native au sein de la librairie JDBC (depuis la version 2) et permet le traitement par lot des requêtes SQL . Par conséquent, toute les solutions reposant sur cette API de connexion à un base de donnée peuvent également utiliser cette fonctionnalité, que ce soit JdbcTemplate pour Spring ou encore Hibernate.
Optimiser ses requêtes JDBC en java
Lorsque vous utilisez un driver JDBC Java, le ResultSet vous permettant de récupérer chaque ligne retournée par votre requête peut être lent. Le ResultSet pour certain driver ne retourne qu’une ligne à la fois, si la connexion entre votre serveur web et votre base de données est lente, vos requêtes vont s’en trouver ralentit. En effet, chaque ligne retourné par votre SELECT et récupéré par le ResultSet correspond à un appel à votre base de donnée.
Désactiver la vérification des clés étrangères avec MySQL
Pour désactiver temporairement la vérification des clés étrangères dans MySQL .
SET FOREIGN_KEY_CHECKS = 0;
Vos requêtes MySQL
SET FOREIGN_KEY_CHECKS = 1;
Cela vous permet d’effectuer des imports exports de vos données sans devoir vérifier l’ordre des tables à importer.