바이너리 데이터를 저장하기위한 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.