Bestanden en afbeeldingen opslaan in de database of niet?

Status
Niet open voor verdere reacties.

Laagen

Gebruiker
Lid geworden
19 feb 2009
Berichten
5
Hallo,

Ik ben bezig een site te maken.
Daarom komen in eerste instantie artikels met foto's en later is het ook de bedoeling dat er programmatjes op worden aangeboden.

Nou is mijn vraag voornamelijk of ik de afbeeldingen en de bestanden het beste in de database kan opslaan of dat ik ze beter in losse mappen moet zetten (en dan een link in de database).

Ik heb eens op internet naar deze vraag gezocht en kom beide andwoorden tegen.
De ene zegt dat al die programma's en foto's in de database slecht zijn voor de performance de andere zegt weer dat dat wel mee valt en het het beste gewoon in de database kan worden opgeslagen.

Het enige probleem dat ik zie is dat het backuppen van de database wat langzamer zal verlopen maar ik zie niet in waarom het zoeken in een database persé daar trager van zou worden.

Als ik vervolgens wat plaatjes (of bestanden) ophaal snap ik dat dit iets trager is doordat het van binary weer moet worden geconverteerd naar het juiste formaat maar dat zal toch ook best mee vallen?
Als ik ze in mappen heb staan moet hij ze nog altijd van de (trage) harde schijf af halen dan heb je alleen natuurlijk wel meteen het goede bestand en geen binary data.
(als dat dus het enige probleem is lijkt het me geen probleem maar ik weet niet of de hele database er traag van word bij het doorzoeken)
Ik vraag me dus echt af of puur het feit dat er veel data (in de vorm van bestanden) in de database staan erg vertragend zou werken.

Lijkt mij niet maar dat weet ik dus niet.

Ik ben ook eens gaan kijken naar wat grotere sites doen en heb het idee (maar dat is natuurlijk moeilijk echt goed te zien) dat zowel download.com als youtube.com alles in een database gooien. Het zelfde geld ook voor nu.nl maar daar ben ik iets minder zeker van.


Het lijkt mij het handigste om het in de database te staan voor heel wat redenen maar als dat echt zwaar ten koste gaat van de performance dan zal ik misschien toch maar uitwijken naar het opslaan in mappen.

Voor nu maak ik iig even twee velden aan een varbinary(max) voor de bestanden/foto's en een varchar(255) voor de eventuele link.

Voor de duidelijkheid het is de bedoelingen dat er uiteindelijk heel veel records in gaan komen. Het is dus geen klein databaseje met een paar foto's en een paar bestandjes. Het is echt de bedoeling dat er uiteindelijk grote hoeveelheden inkomen.

Kan iemand die hier veel ervaring mee heeft of verstand heeft van dataopslag in databases me zeggen wat het beste is?
 
Het beste is om de bestanden los in een aparte directory op te slaan en in de database een link te plaatsen.
Indien je grote hoeveelheden afbeeldingen etc. zelf in de database opslaat (zoals dit bij jou het geval zou zijn in de toekomst), dan zal de database op het moment dat iemand zo`n afbeelding etc. niet benaderbaar zijn voor een ander. Wanneer je zeel veel gebruikers hebt, dan is dat niet acceptabel. De actie op een database moet zo kort mogelijk duren.
Tevens bevordert dit het zoeken in de database.

Tip:
Bij een query alleen de velden opvragen (dus met naam) die je nodig hebt, en niet zoals zovelen, een SELECT * FROM gebruiken.
 
[@silkcom]
Heb je dan enig idee hoe sites als youtube, download.com en nu.nl dat dan oplossen? Of heb ik het mis als ik denk dat die het wel in een database op slaan? [/@silkcom]

BTW was nog vergeten te melden dat ik op dit moment Microsoft SQL Server gebruik en dat het misschien later nog word omgezet naar mysql.
Misschien ook handige info om te weten.
 
Bij alle sites waar je gewoon een rechtstreekse link kunt volgen naar een plaatje, is geen sprake van een database... en dat zijn de meeste. Zelfs Imageshack heeft gewoon files ergens staan :)

Dat is voor plaatjes echt de betere oplossing. Voor bestanden ga ik even uit dat je tekst bedoelt? Aangezien je artikelen op je site wil? Die zou ik wel in de database zetten, dan is het makkelijker om er op te zoeken.

Het enige waar je op moet letten is dat Google makkelijk bij de belangrijkste teksten kan komen zodat je zelf ook gevonden wordt :)
 
>

Met programma's bedoelde ik echt programmatjes, geen tekst die sla ik sowiso op in een database.

Al zou ik dan indd niet precies weten hoe ik die zoekbaar maak voor google.

Maar de link zoals je zei is een directe link als het bestand of foto zich niet in de database bevind. Daarom dacht ik ook dat het vaak juist wel in een database werd opgeslagen. Zie de volgende twee links maar eens.

http://dw.com.com/redir?edId=3&site...30f7956b79c66063c0&pid=11006019&psid=10320142

Dat is een bestand op downloaden.com en volgens mij is dat toch een aanroep naar een database?

Dan youtube
http://www.youtube.com/swf/l.swf?sw...allow_ratings=1&title=Coldplay - Viva La Vida

ook geen directe link naar een swl bestandje.

nu.nl was bij nader inzien toch zeker niet opgeslagen in een database.

Maar kan iemand mij dan bevestigigen of die youtube filmpjes en download.com bestanden toch niet in de HD staan en zowel hoe ze dat dan oplossen ivm met performance. tenslotte zijn alle filmpjes van youtube een aantal mb groot en staan er heel veel op (grote database) plus zitten er veel mensen op youtube.

Ik snap overgens wel dat ze daar meerdere servers hebben draaien enz maar dan nog zouden ze dat natuurlijk niet doen als het al snel tot problemen leiden.

Overgens gaat google toch alle links naar op de site? Dus ook al zijn de teksten in de database hij ziet dat dan toch omdat hij de site gewoon opvraagd?
 
Zoals je zelf al aangaf bij de youtube-link, daar is de volgende parameter te vinden:
"swf=http%3A//s.ytimg.com/yt/swf/cps-vfl79327.swf". En dat is dus het filmpje dat je ziet. Het is dus een apart bestand.
 
[@silkcom]
Weet je dat zeker?
Ga maar eens naar http://s.ytimg.com/yt/swf/cps-vfl79327.swf
Dat is een player zonder filmpje. En als je het filmpje op je PC hebt staan in je tempmap heet het video[5].flv (in mijn geval) eigenlijk dus video.flv terwijl als dat echt de link zou zijn het bestand in mijn tempmap volgens mij cps-vfl79327.swf zou moeten heten.

Als ik dan verder in die link ga kijken staat er echter ook "video_id=dvgZkm1xWPE".
Dan lijkt mij dus dat dvgZkm1xWPE het id van het filmpje in de database is dat moet worden geladen op de player die http://s.ytimg.com/yt/swf/cps-vfl79327.swf daar staat.

Ik heb ook eens http://s.ytimg.com/yt/swf/cps-vfl79327.swf in een link gezet op een website om het te kunnen opslaan als een bestand. Als ik dat dan doe krijg in indd het bestandje cps-vfl79327.swf maar dat is geen filmpje. Het is niet af te spelen en is maar 119kB groot terwijl het daatwerkelijke filmpje dat ik uit me inet temp heb gehaalt 5,26 MB is.

Of zie ik dat nou verkeert?

[/@silkcom]
 
Bedank voor de informatie.

Ik weet ondertussen genoeg.

Youtube slaat de video's op een fileserver, vandaar dat je daar ook geen directe link naar hebt.

Ik ga een link op slaan en nog eens kijken wat type FileStream voor me kan betekenen. (MS SQL Server 2008).

Bedank voor de hulp.:thumb:
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan