Citat:
Ursprungligen postat av Blackex
Citat:
Ursprungligen postat av jonny
Ingen bra lösning ur prestandasynpunkt. Lagra metadata i databasen och filer på disk.
|
Det beror på vilka behov som finns.
Fördel med bilder i databas: Transaktionerna är Atomära A, Konsistensbevarande C, Isolerade I och Hållbara D = ACID
Nackdel med bilder i databas: Prestanda
http://www.extremeexperts.com/SQL/FAQ/StoreImages.aspx
|
Ptja, buzzwords buzzwords.
Det går att uppnå samma "syrlighet" även med rätt språk, rätt felhantering, rätt tabellkonstruktion och bilder som filer.
Se följande pseudokod:
Kod:
try {
connection.beginTransaction();
int imageid = insert_data_intoDb(image);
store_image_file(image);
connection.commit();
} catch ( java.sql.SQLException e){
if ( connection != null ){
connection.rollback();
}
} catch ( java.io.IOException ex ){
if ( connection != null ){
connection.rollback();
}
if ( checkFile(imageid) ){
removeFile(imageid);
}
}
Så, om någon av momenten går fel, inget händer. Dvs din operation är rätt säker för inkonsistens.
/Zoran