2011-01-06 14 views
6

Obecnie pracuję nad systemem, który obejmuje przechowywanie wielu badań i szczegółów ich zawartości (badanie może zwykle zawierać 1 < X < ~ 2000 obrazów). Razem z moimi kolegami dyskutowaliśmy, jaka może być najlepsza metoda przechowywania plików w rozmiarze (w szczególności rozmiarach obrazów) w bazie danych.Przechowywanie rozmiarów plików w bazie danych

Rozmiary plików zazwyczaj wynoszą od < 1kB do> 20MB.

Obecnie debaty między przechowywania obrazów rozmiary jak:

# of kilobytes (as an integer value) 
# of bytes (as a large integer value) 
# of megabytes (possibly as a decimal value) 
Other Options... 

ja nie pracowałem z przechowywaniem rozmiary plików i dużo zastanawiałem się, co może być najbardziej wydajny/praktyczny sposób realizacji tego?

Odpowiedz

6

Nie ma prawidłowej odpowiedzi. Lubię odpowiedź Matta z powodów precyzji. Podoba mi się odpowiedź Abe'a ze względu na oszczędność miejsca ... (Tak, miejsce w tabeli jest o wiele bardziej "wpływowe" niż w systemie plików)

Prawdziwa odpowiedź brzmi: w jakim celu przechowujesz wartość? Czy jest to mechanizm do fakturowania użytkownika przechowującego dane? Wtedy będziesz musiał polegać na umowie. Czy to zmierzyć miejsce na dysku ... jeśli tak, pliki NAPRAWDĘ zajmują pewną liczbę "bloków", a NIE pewną liczbę bajtów. Jeśli minimalny rozmiar bloku wynosi 2 KB, powinieneś powiedzieć, że KAŻDY plik jest przyrostem 2 kb ... Jeśli przechowujesz tę wartość lub tę wartość razy 2kb jest do Ciebie.

Być może przechowuje się wartość, ponieważ algorytm pobierania ma dwie ścieżki optymalizacji, jedną dla większych plików i jedną dla mniejszych, a ten proces chciałby znać rozmiar BEZ odpytywania systemu plików. (w tym przypadku może wystarczy tylko kolumna "is_greater_than_x_kb").

Nikt tutaj nie może ci powiedzieć, jakie masz wymagania. Jedyne, co dają ci istniejące odpowiedzi, to opinia, a nie właściwa odpowiedź.

+0

Dzięki Steph- Wiem, że nie było żadnej precyzyjnej odpowiedzi, po prostu chciałbym otrzymywać myśli ludzi z różnych powodów, aby przechowywać rozmiary plików i korzyści z ich przechowywania w określony sposób. Odpowiedzi wszystkich były bardzo pomocne. –

+0

Wszystkie są pomocne, ale nie zastępują jasnych wymagań. 95% problemów, które widzę, wynika z braku jednoznacznych wymagań. Również 76% wszystkich statystyk jest całkowicie sfabrykowanych. ;-) –

+1

Nie mogę wymyślić powodu, aby przechowywać rozmiar pliku, chyba że jest to wymagane. Stephanie twierdzi, że jest użycie "is_greater_than_x_kb". Jeśli rozmiar pliku był w pewnym projekcie BA, więc aplikacja mogła sprawdzić, czy dostał właściwy plik, zapytaj go, czy uznałby sumę kontrolną lub inny typ unikalnego identyfikatora pliku, więc aplikacja wie, że dostał plik, który próbował dostać. –

3

Ja osobiście wybrałbym # kb jako kolumnę int (o ile nigdy nie będziesz mieć niczego mniejszego niż 1kb). bigint zajmuje dwa razy więcej miejsca (8 bajtów vs 4) i tak długo jak jest dobrze udokumentowany, ludzie nie powinni być zbyt zdezorientowani.

+0

Jeśli przechowują pliki do 20 MB, powiedziałbym, że zapisanie 4 bajtów w opisie rozmiaru nie jest najwyższym priorytetem. ;-) –

9

Jeśli zamierzasz jawnie zapisać rozmiar, zapisz liczbę bajtów. Po użyciu innych jednostek jest zbyt wiele zamieszania/niejasności.

przykład: różne osoby może interpretować kb jak:

  • kilobajtów
  • kilobitów
  • kibibytes
  • kibibits

...and how big is a kilobyte, anyway?

T hat powiedział, jeśli przechowujesz rzeczywiste dane w bazie danych, Nie widzę natychmiastowego nieodpartego powodu, aby jawnie przechowywać długość danych w ogóle.

+0

Nie jestem pewien, dlaczego dokładnie jest on przechowywany - ponieważ tak naprawdę nie pracuję po tej stronie systemu. Jednak - wiedziałem, że to jest przechowywane i pomyślałem, że zobaczę, czy ktoś miał wkład na temat lub jeśli była "najlepsza praktyka" lub jakiś inny rodzaj sugerowanego użycia, aby przechowywać rozmiary plików. –

2

Przechowuję pliki w bajtach jako liczba całkowita w bazie danych. Pole (podpisane) liczby całkowitej mysql ma maksymalną wartość 2147483647, więc pliki o wielkości do 2 GB mogą być przechowywane bez problemu.

Powiązane problemy