2017-08-09 4 views
-2

Je développe une application Java SE pour le vétérinaire.Oracle de Java, sélectionnez toute la table avec la colonne de blob affectent la performance?

J'ai un nom de table animaux de compagnie, chaque animal de compagnie a une photo qui est une colonne blob, la question est, lors de la sélection de tous les animaux de compagnie la colonne photo affectent la perfomance de l'application.

Dans l'application, je passe le résultat de la requête à des objets Pet je pense que lorsque j'ai plusieurs lignes, les photos chargées en mémoire affecteront la performance.

+0

Vous avez écrit la requête et l'avez probablement testée. Vous nous dites, avait-il des problèmes de performance? – SandPiper

+0

Ne mettez pas de blobs dans votre table principale. –

Répondre

0

En général, cela ne devrait pas affecter les performances. Beaucoup. Un blob est finalement juste un pointeur vers un flux IO. Le coup de performance intervient lorsque vous commencez à charger les photos, qui vont commencer à effectuer des opérations d'E/S. La question est: quand avez-vous réellement besoin des données d'image? Comme l'a souligné Thorbjorn, vous ne devriez probablement pas mettre les blobs dans la table principale. Soit le système doit maintenir la table des pointeurs blob, soit votre objet devra charger les données d'image dont il n'a pas encore besoin. Mieux vaut avoir une table séparée avec une colonne "imageID" ou quelque chose comme ça. Ajoutez ensuite une méthode "Pet.loadImage()", ou peut-être un déclencheur d'événement, qui chargera l'image si nécessaire.