2010-06-22 18 views
6

Jaki jest najlepszy sposób przechowywania danych binarnych (obrazy, pdf, mp3, filmy itp.) W mysql i dlaczego? Co chciałbym wiedzieć, to jak to robicie (jako programiści) i dlaczego? Również, jak robią to duże witryny?Jaki jest najlepszy sposób przechowywania danych binarnych (obrazy, pdf, mp3, filmy itp.) W mysql i dlaczego?

góry dziękuję ;-)

+1

Dlaczego jest to oznaczane jako Oracle? –

+0

Myślałem, że to było pytanie rdbms ogólnie – Imran

+2

Ale twoje pytanie mówi "w mysql", a nie "w bazie danych"! W rzeczywistości jest to coś, co różne DBMS robią inaczej. –

Odpowiedz

4

do przechowywania danych binarnych w mysql Blob może być stosowany: MySQL Manuel: 10.4.3. The BLOB and TEXT Types

Chociaż, jeśli nie jest to naprawdę konieczne, nie będę przechowywania danych binarnych w bazy danych, ponieważ z tych typów danych trudno jest korzystać z głównych powodów przechowywania danych w MySQL itp. (takich jak Join, Index, ...). Blob także obniża ogólną wydajność bazy danych.

Może zbudować osobną tabelę dla plików gdzie można przechowywać kilka aspektów i ścieżkę systemu plików ...

+2

Nie wiem, widziałem terabajty danych binarnych przechowywanych w bazach danych Oracle, a następnie przesyłano z nich strumieniowo. To niekoniecznie zły pomysł. – Artefacto

+0

Nie napisałem, że to generalnie zły pomysł - istnieją przykłady i przypadki użycia dla i dla Blobów. Mimo to powinien - moim zdaniem - być dobrym powodem i właściwym strojeniem (np. Wydzielone przestrzenie stołów, ...), gdy ktoś chce używać takich technik. – FloE

+0

BLOB to droga. Przechowywanie ścieżki ma pewne określone problemy. Jeśli pliki zostaną przeniesione, twoje wskaźniki są uszkodzone. Tworzenie kopii zapasowej DB staje się stosunkowo bezcelowe. Dostępne operacje na danych nie decydują o właściwościach do przechowywania. –

3

W Oracle użyłbym kolumny BLOB do przechowywania tych przedmiotów. W ten sposób integralność i bezpieczeństwo danych jest zapewniona w taki sam sposób, jak wszystkie pozostałe dane. Alternatywą jest użycie BFILE, który jest wskaźnikiem do pliku w zewnętrznym systemie plików - pliku, który mógł zostać przeniesiony, usunięty, zmieniony lub nawet utracony przy następnej próbie uzyskania do niego dostępu.

+0

+1 Mając do czynienia z obu sklepów BLOB i wskaźników systemu plików podczas budowy stron internetowych, wolę przechowywania BLOB przed bufetem systemu plików przed wyświetleniem. –

1

Dobrze, trzymam obrazów na dysku, mam wiele i wiele z nich, a ja nie Wyobraź sobie, że koszmar utrzymania może być. Moja baza danych (mysql) do tej pory jest mniejsza niż 5 GB, i mam się dobrze z ~ 50 GB plików jpeg (każdy obraz ma kilka zapisanych rozmiarów). Przechowywanie obrazów w osobnej bazie danych (może z osobnym kontrolerem raidów) może być dobrą rzeczą, jeśli zostanie zrobione poprawnie, ale uważam, że system szybciej zapisuje je na dysku.

1

Używam bazy danych tylko do przechowywania metadanych plików (rozmiar, typ MIME, tagi itp.). Ze względu na integralność i bezpieczeństwo danych lepiej odciążyć obsługę danych binarnych do specjalistycznej usługi, takiej jak Amazon's S3.

Jeśli chodzi o integralność danych: unikałbym przeciążania serwera DB przez wykonywanie transakcji obejmujących duże obszary blob. Zamiast tego proponuję najpierw zapisać pliki i wykonać okresowe asynchroniczne "usuwanie śmieci".

Powiązane problemy