바이너리 데이터를 저장하기위한 VarBinary vs Image SQL Server 데이터 유형?


91

이진 파일을 SQL Server 데이터베이스에 저장해야합니다. Varbinary 및 Image에서 더 나은 데이터 유형은 무엇입니까?

답변:


143

이미지는 더 이상 사용되지 않으므로 varbinary를 사용해야합니다.

Microsoft(@Christopher 링크에 감사드립니다)

ntext, text 및 image 데이터 유형은 향후 버전의 Microsoft SQL Server에서 제거됩니다. 새로운 개발 작업에서 이러한 데이터 유형을 사용하지 말고 현재이를 사용하는 애플리케이션을 수정하십시오. 대신 nvarchar (max), varchar (max) 및 varbinary (max)를 사용하십시오.

큰 비 유니 코드 및 유니 코드 문자 및 이진 데이터를 저장하기위한 고정 및 가변 길이 데이터 유형. 유니 코드 데이터는 UNICODE UCS-2 문자 세트를 사용합니다.


1
@ cmsjr : 아마도 Microsoft가 "이미지 데이터 유형은 향후 버전의 Microsoft SQL Server에서 제거 될 것입니다."라고 말했기 때문일 수 있습니다.
Ehsan 2013

5
@Ehsan 나는 당신이 deprecated라는 용어에 익숙하지 않다고 가정 할 수 있습니다. 일반적으로 어떤 것이 더 이상 사용되지 않는다고 말하는 것은 향후 제거 될 예정이므로 사용해서는 안된다는 뜻입니다. 따라서 내 게시물과 귀하의 의견에 게시 한 인용문은 본질적으로 동일한 의미입니다.
cmsjr

걱정하지 마세요. 좋은 점을 제시합니다. 문구를 업데이트하겠습니다.
cmsjr 2013

나는 이것을 "링크 전용"대답이라고 부르지 않을 것입니다. 나는 이것을 "더 많은 것을 배우고 자하는 사람들에게 도움이되는 링크를 포함하는 질문에 대한 간결하고 정확한 대답"이라고 부를 것입니다.
cmsjr 2013 년

2
솔직히 말해서, 당신이 공격적이고 위협적인 어조로 접근했기 때문에 편집하는 것을 싫어했음을 알려 드리겠습니다. 무례하게 굴려는 의도는 아니었지만 나에게는 그렇게하는 것 같았다. 무례 함은 종종 사람들로 하여금 좋은 아이디어를 무시하게 만듭니다. 당신이 제안한대로 내용을 개선했지만, 당신의 제안을 어떻게 표현할 것인지에 대해서도 생각해 보시기 바랍니다.
cmsjr

14

varbinary(max) 갈 길이다 (SQL Server 2005에 도입 됨)


9

FileStreamSQL Server 2008에 도입 된 다소 spiffy도 있습니다 .


1
spiffy : 외모가 똑똑 합니까?
Liam

1
'rather spiffy'는 일반적인 모국어로 (단지 'spiffy'보다) 다소 더 일반적인 의미를 가지고 있습니다.
Grantly

이 질문은 열 형식에 관한 FileStream것이며 저장 동작 일뿐입니다. Filestream은 varbinary(max)SQL Server 인스턴스를 사용 하고 변경 하여 구현됩니다 .
paqogomez

6

https://docs.microsoft.com/en-us/sql/t-sql/data-types/ntext-text-and-image-transact-sql

영상

0에서 2 ^ 31-1 (2,147,483,647) 바이트까지의 가변 길이 이진 데이터입니다. 여전히 이미지 데이터 유형을 사용하는 것이 지원되지만 다음 사항에 유의하십시오.

https://docs.microsoft.com/en-us/sql/t-sql/data-types/binary-and-varbinary-transact-sql

varbinary [(n | 최대)]

가변 길이 이진 데이터. n은 1에서 8,000 사이의 값일 수 있습니다. max는 최대 저장소 크기가 2 ^ 31-1 바이트임을 나타냅니다. 저장 크기는 입력 된 데이터의 실제 길이 + 2 바이트입니다. 입력되는 데이터의 길이는 0 바이트가 될 수 있습니다. varbinary에 대한 ANSI SQL 동의어는 이진 가변입니다.

따라서 둘 다 같은 크기 (2GB)입니다. 그러나 다음에 유의하십시오.

https://docs.microsoft.com/en-us/sql/database-engine/deprecated-database-engine-features-in-sql-server-2016#features-not-supported-in-a-future-version- of-sql-server

"이미지"데이터 유형의 끝은 아직 결정되지 않았지만 "미래"에 해당하는 증명을 사용해야합니다.

하지만 스스로에게 물어봐야합니다 : 왜 BLOBS를 컬럼에 저장합니까?

https://docs.microsoft.com/en-us/sql/relational-databases/blob/compare-options-for-storing-blobs-sql-server

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.