Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Zdjecia na FTP czy do BLOB?
Forum PHP.pl > Forum > Bazy danych > MySQL
kicaj
W czym lepiej przechowowywac zdjecia?

W MySQLu w Blob'ie czy na FTP'ie?

Gdzie mniej miejsca zajmuje?
uboottd
W zasadzie to troszeczke mniej na FTP-ie, ale nie sadze zaby ta korzysc przewazyla korzystci z trzymania tego w BLOB-ach moim zdaniem. Na pewno masz szybszy do tego dostep (patrzac z punktu widzenia skryptu).
sivyer
Gdzies niedawno czytalem, ze nie zaleca sie trzymania wielu wartosci typu BLOB w bazie danych, ponoc to spowalnia baze jako calosc. Jesli znajde gdzies ten tekst albo linka, to podrzuce. Wiadomo Wam cos na ten temat?
uboottd
To juz scisle zalezy od uzywanej bazy danych i konstrukcji tabel. W roznych sytuacjach to moze byc roznie, ale mysle ze generalnie i tak bedzie leszym rozwiazaniem od FTP. Konkurencja moglybybyc najwyzej lokalne pliki jesli takie rozwiazanie jest mozliwe.
kicaj
to co mi polecacie?
Zalezy mi na szybkosci ładowania i wydajnosci!

Przed dodaniem obrazka bedzie jeszcze zmniejszany przez GD, to odpowiednich wymiarów!
uboottd
Jesli FTP kontra BLOB to zdecydowanie BLOB. Nawiazanie polaczenia z FTPem jednak troche trwa (na podstawie obserwacji, teoretycznie nie powinno byc az takiej roznicy, ale jest...)
itsme
pytanie co rozumie pod pojeciem FTP jezeli trzymasz zdjecia na tym samym serwerze co skrypty to lepiej bez bazy natomiast jezeli chces sie laczyc z ftp to lepiej BLOB
kicaj
pliki moge miec na tym samy serwerze, lub w bazie, co wybrac?
uboottd
Jesli masz dostep do plikow z poziomu skryptow za pomoca instrukcji fopen to na pewno bedzie to najszybsze rozwiazanie, i chyba w sumie nawet dosc wygodne.
kicaj
nieee!!

Chodzi mi o pliki graficzne, czy mam je wstawiac normalnie (<img src...>) czy ladowac z bazy MySQL i tam je takze przechowywac!
uboottd
smile.gif)
<img src="statyczne_plik.jpg"> zawsze bedzie najszybsze winksmiley.jpg Myslalem ze chodzi o cos bardziej zakombinowanego...
kicaj
hehe nie jest to moze skomplikowane ale zalezy mi na oszczednosci mb smile.gif
gdzie bedzie mniej zajmowalo?
uboottd
Pod wzgledem zajetosci FTP czy pliki to jest to samo, w bazie zajeloby troche wiecej.
kicaj
czyli mam robic tradycyjnie, bez bazy?
uboottd
Jezeli bierzesz pod uwage tylko szybkosc i zajetosc to tradycyjnie. Nie wiem co grzybisz, wiec trudno cos tu bardziej dywagowac.
itsme
Kicaj_: nie wiem o co Ci chodzi o szybkosc czy MB questionmark.gif odpowiedz sobie sam i bedziesz mial rozwiazanie
kicaj
Tworze baze userów ze zdjeciami, zdjecia mozna dodawac i usuwac!
Chodzi mi o to gdzie zaoszczedze troszku kilobajtów, czy trzymac standartowo na FTPie czy trzymac w MySQL'u?
No na szybkosci tesh mi napewno zalezy!
uboottd
W zasadzie to napisz jak umiesz (czy jest Ci latwiej/wygodniej). Roznice sa zbyt male zeby dyskutowac o tym w watku na juz dwie strony.
kicaj
zrobie chyba standartowo...

Za jakis czas przeprowadze test pomiedzy:
standartowym plikiem graficznym na FTPuie,
a plikiem trzymanym w BLOB'ie w MySQL'u!

Wyniki opublikuje tutaj!
radzaw
prosty test mowi co jest lepsze :
Cytat
z pliku : 0.039194941520691
z bazy : 0.12915802001953


[php:1:e72fda95fc]<?php
function podaj_czas()
{
$mtime = microtime();
$mtime = explode(" ",$mtime);
$mtime = $mtime[1] + $mtime[0];
return $mtime;
}

$start=podaj_czas();

$plik=fopen("fotka.jpg","r");
while (!feof($plik)) echo fread($plik,1024);
fclose($plik);

$stop = podaj_czas();
$czas=$stop-$start;
echo "z pliku : $czas";

$start = podaj_czas();

@mysql_connect("localhost", "**", "**");
@mysql_selectdb("test");

$wynik=@mysql_query("SELECT dane FROM fotki WHERE id=2");
$dane=@mysql_fetch_array($wynik);
echo $dane['dane'];

@mysql_close();

$stop= podaj_czas();

$czas=$stop-$start;
echo "z bazy : $czas";

?>[/php:1:e72fda95fc]

gdzie :
[sql:1:e72fda95fc]CREATE TABLE `fotki` (
`id` int(10) unsigned NOT NULL auto_increment,
`dane` mediumblob NOT NULL,
PRIMARY KEY (`id`)
) TYPE=MyISAM; [/sql:1:e72fda95fc]
skooot
jestem przekonany ze najlepszym rozwiazaniem jest trzymanie obrazkow na serwerze uploadujac je do odpowiedniego katalogu i zmieniajac im nazwe, jak bedziesz trzymal je w blobie i jeszcze dodatkowo pozwolisz na kosowanie ich uzytkownikom i ladowanie nowych moze sie po pewnym czasie okazac, ze zasmieca ci baze i zacznie wolno dzialac, bedziesz musial robic indeksacje i czyscic ja co jakis czas ze zbendnych wpisow, ktore beda tylko zajmowaly miejsce.
pozdr.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.