2009-09-12 2 views
0

얼마나 큰 (바이너리 (XY)) 내가 카메라로 촬영 한이 사진을 저장하려면 내가 SQL 데이터베이스 내 테이블 열을해야 - .. 나도 몰라하는 가변 크기를 의미한다 .. 7MB? 하지만 크기를 2MB 또는 그 이상으로 제한해야한다면 가능할 것입니다. 당신 의견은 뭐죠?그림 SQL DB에

편집

또는 내가 그들을 다른 저장해야? asp.net mvc를 사용하여 웹 갤러리를 구축하고 있습니다.

+1

실행중인 데이터베이스 서버는 무엇입니까? –

+0

현재 VS2008입니다. 나는 SQL Server 2008 Express를 사용할 계획입니다. – Trimack

+3

나는 이것이 당신이 요구 한 것이 아니라는 것을 안다. 그러나 내가 이것을 언급하지 않는다면 나는 기분이 좋을 것이다. 매우 주관적인 주제이지만 데이터베이스에 이미지를 저장하는 것은 끔찍한 일입니다. 유일한 이점은 데이터베이스와 이미지의 데이터를 백업하고 이동할 수 있다는 것입니다. 그렇지만 너무 복잡하다면 느낄 수 있습니다. 주연 및 검색을위한 사용자 정의 코드가 필요합니다. 수작업으로 변경하기가 어렵습니다. 종종 DB 공간이 비쌉니다.이 작업을 원하지만 좋은 생각이들 수도 있습니다. – olle

답변

3

당신이 말하는 것은 varbinary 칼럼입니다. 물론 varbinary을 8000보다 크게 만들면 즉시 varbinary(max) 열로 변환되므로 최대 2GB까지 저장할 수 있습니다. 이것은 SQL Server가 행을 저장하는 방법 (페이지 당 8k)과 관련이 있습니다.

따라서 각 행은 비트에 대한 포인터로 열을 저장합니다. 그래서, 내가 저라면, 파일 시스템에 이미지를 저장하고 그 파일의 위치를 ​​데이터베이스에 저장하는 것이 었습니다.

0

SQL Server에 이미지를 저장하려면 varbinary (max) 열 형식을 사용하십시오. 최대 2Gb까지 허용합니다 (내가 기억하는 경우).

또한 SQL Server 2008 (익스프레스 에디션에 대해 잘 모름)을 사용하면 새로운 filestream 데이터 유형을 사용할 수 있습니다. 물론

데이터베이스에이를 저장의 가장 큰 장점은 만 백업 할 한 가지가 있고 동기화 점점 파일 시스템 및 데이터베이스에 문제가없는 것입니다. 새로운 파일 스트림 유형은 이러한 문제를 완화하는 데 도움이되므로 흥미로운 개발입니다.

이 데이터를 데이터베이스에 저장하는 단점은 당신이 당신의 데이터베이스와 웹 서버 사이의 대역폭은 이미 긴장되어 특히, 데이터베이스에 추가 부담을 줄 것입니다. 다른 사람으로

+0

, 그것은 백업 같은 것들로 혼란을 재생하고 특별히 복원 당신은 당신이 그것을 사용하면 특정 시점으로 돌아 가지 않을 것입니다. –

+0

그래서 도움이되는 것보다 더 많은 방해가되는 것 같습니까? 그러나 파일 시스템에 파일을 수동으로 저장하는 것만으로도 특히 백업/복원과 함께 데이터 동기화에 문제가 있습니다. –

0

은 이미 당신이 정말로 데이터베이스에 이미지를 저장하는 몇 가지 킬러 이유가 있어야 (BTW 너희들이 pendantic 경찰에도 불구하고 답변을 있었어야) 의견 진술했다. 그렇지 않으면 파일 시스템에 배치하십시오.

특히 이것은 이미지가 웹 서버에서 제공되는 경우에 그러하다. 웹 서버는 코드가 데이터베이스에서 코드를 추출하는 것보다 파일 시스템에서 이미지를 전달할 때 훨씬 효율적입니다.

관련 문제