Muszę przechowywać pliki binarne w bazie danych SQL Server. Który typ danych jest lepszy niż Varbinary i obraz?
Odpowiedzi:
Ponieważ image jest przestarzały, powinieneś używać varbinary.
per Microsoft (dzięki za link @Christopher)
Typy danych ntext, text i image zostaną usunięte w przyszłej wersji Microsoft SQL Server. Unikaj używania tych typów danych w nowych pracach programistycznych i planuj modyfikowanie aplikacji, które obecnie z nich korzystają. Zamiast tego użyj nvarchar (max), varchar (max) i varbinary (max).
Typy danych o stałej i zmiennej długości do przechowywania dużych znaków innych niż Unicode i Unicode oraz danych binarnych. Dane Unicode używają zestawu znaków UNICODE UCS-2.
Jest też dość sprytny FileStream
, wprowadzony w SQL Server 2008.
FileStream
jest tylko sposobem przechowywania. Filestream jest implementowany przy użyciu varbinary(max)
i wprowadzaniu zmian w instancji serwera sql.
https://docs.microsoft.com/en-us/sql/t-sql/data-types/ntext-text-and-image-transact-sql
wizerunek
Dane binarne o zmiennej długości od 0 do 2 ^ 31-1 (2 147 483 647) bajtów. Nadal jest obsługiwane używanie typu danych obrazu, ale pamiętaj o:
https://docs.microsoft.com/en-us/sql/t-sql/data-types/binary-and-varbinary-transact-sql
varbinary [(n | max)]
Dane binarne o zmiennej długości. n może mieć wartość od 1 do 8 000. max wskazuje, że maksymalny rozmiar magazynu to 2 ^ 31-1 bajtów. Rozmiar pamięci to rzeczywista długość wprowadzonych danych + 2 bajty. Wprowadzane dane mogą mieć długość 0 bajtów. Synonim ANSI SQL dla varbinary jest binarnie zmienny.
Więc oba mają jednakowy rozmiar (2 GB). Ale pamiętaj o:
Chociaż koniec typu danych „obraz” nadal nie jest określony, należy użyć odpowiednika „przyszłości”.
Ale musisz zadać sobie pytanie: po co przechowywać BLOBY w kolumnie?