Publikuję obraz na serwerze przy użyciu identyfikatora URI DANYCH (strona klienta, używając obszaru roboczego). Mam teraz dwie możliwości: mogę zapisać "obraz" jako ciąg w kolumnie varchar (max) lub mogę go przekonwertować na bajt [] i zapisać jako varbinary (max).Dane URI vs. Binary w bazie danych
Jeśli chodzi o wykonanie, nakład jest taki sam. Próbuję określić, co byłoby bardziej efektywne, jeśli chodzi o 1: przestrzeń w DB i 2: wyświetlanie obrazu. Czy ktoś widział jakiekolwiek analizy na ten temat lub ma dobry sposób na zmierzenie tego?
AN FYI - obraz 3kb ma około 100K znaków w DB.
Zastosowanie: ASP.NET 4.5, MVC, SQL Server 2008
do wyjaśnienia
mogę albo zapisać obraz w bazie danych za pomocą byte [] w varbinary (MAX) kolumna jak jest Zwykle tak, lub mogę przechowywać identyfikator URI danych z płótna HTML5, który wygląda jak: dane: image/png; base64, iVBORw0K ... w kolumnie varchar (max).
Przechowywanie bajtu [] jest typowe i nie wymaga dalszych wyjaśnień. Przechowywania danych URI jest po prostu ciągiem i wyświetlania obrazu byłaby kwestia:
<img src="data:image/png;base64,iVBORw0K" /> or
<img src="@Model.Uri" />
Moje pytanie brzmi, który z nich jest bardziej wydajnych i Oszczędność miejsca, a jeśli nie ma żadnej dokumentacji, białego papieru lub analizę wokół tego konkretnego porównania .
To było pomocne. Masz link?Szukałem 40 minut i nie mogę znaleźć takiego porównania. –
użyłbyś varbinary (max) nie varchar (max) –
Chociaż doceniam twój wysiłek, pytanie nie dotyczyło przechowywania obrazu w bazie danych - zajęłoby mi to 7 sekund;) - chodzi o przechowywanie [DATA URI ] (http://en.wikipedia.org/wiki/Data_URI_scheme) zamiast bajta []/blob, który jest zwykle przechowywany. –