SQL Server 텍스트 형식과 varchar 데이터 형식
가변 길이 문자 데이터가 있고 SQL Server (2005) 데이터베이스에 저장하려고합니다. TEXT SQL 유형을 선택하거나 VARCHAR SQL 유형을 선택하는 방법에 대한 모범 사례를 배우고 싶습니다. 성능 / 발자국 / 기능.
SQL Server 2005 이상을 사용하는 경우을 사용하십시오 varchar(MAX)
. text
데이터 형식은 더 이상 사용되지 않으며 새 개발 작업에 사용되어서는 안된다. 에서 워드 프로세서 :
중대한
ntext
,text
및image
데이터 형식은 이후 버전의 Microsoft SQL Server에서 제거됩니다. 새로운 개발 작업에서 이러한 데이터 유형을 사용하지 말고 현재 데이터 유형을 사용하는 응용 프로그램을 수정하십시오. 대신 nvarchar (max) , varchar (max) 및 varbinary (max)를 사용하십시오.
TEXT
큰 문자열 데이터 조각에 사용됩니다. 필드 길이가 특정 임계 값을 초과하면 텍스트가 행 외부에 저장됩니다.
VARCHAR
항상 행에 저장되며 8000 자로 제한 됩니다. 당신이를 만들려고하면 VARCHAR(x)
, 여기서 X> 8000 , 오류를 얻을 :
서버 : 메시지 131, 수준 15, 상태 3, 줄 1
'varchar'유형에 지정된 크기 ()가 모든 데이터 유형 (8000)에 허용 된 최대 값을 초과합니다.
이러한 길이 제한은 SQL Server 2005VARCHAR(MAX)
에서 중요하지 않습니다 . SQL Server 2005 는 TEXT
.
참고 MAX
여기에 일정의 일종없는, VARCHAR
그리고 VARCHAR(MAX)
, 후자의 존재 매우 가까운 매우 다른 종류가 있습니다 TEXT
.
이전 버전에서는 SQL 서버 사용자가 액세스 할 수 없습니다 TEXT
직접, 당신은 단지를 얻을 수 TEXTPTR
및 그것을 사용 READTEXT
하고 WRITETEXT
기능을합니다.
SQL Server 2005 에서는 TEXT
열에 직접 액세스 할 수 있습니다 ( VARCHAR
값을 할당하려면 명시 적 캐스트가 필요하지만 ).
TEXT
좋다 :
- 데이터베이스에 큰 텍스트를 저장해야하는 경우
- 열 값을 검색하지 않으면
- 이 열을 거의 선택하지 않고 조인하지 않으면
VARCHAR
좋다 :
- 작은 줄을 저장하면
- 문자열 값을 검색하면
- 항상 선택하거나 조인에 사용하는 경우.
여기 를 선택 하면 열의 값을 반환하는 모든 쿼리를 발행하는 것을 의미합니다.
함으로써 검색 여기서 I는 그 결과의 값에 따라 임의의 질의 실행 의미 TEXT
또는 VARCHAR
열. 이것은 어떤에서 사용 포함 JOIN
또는 WHERE
조건.
(가)로 TEXT
행 아웃 저장되고 관련되지 않은 쿼리 TEXT
열은 일반적으로 빠릅니다.
무엇이 TEXT
좋은지에 대한 몇 가지 예 :
- 블로그 댓글
- 위키 페이지
- 코드 소스
무엇이 VARCHAR
좋은지에 대한 몇 가지 예 :
- 아이디
- 페이지 제목
- 파일명
엄지 손가락의 규칙으로, 당신이 이제까지 당신에게 텍스트 값을 필요로하는 경우 초과 200 개 문자를 AND ,이 열을 사용하는 조인을 사용하지 않습니다 TEXT
.
그렇지 않으면를 사용하십시오 VARCHAR
.
PS 동일하게 적용 UNICODE
가능 NTEXT
하고 NVARCHAR
위의 예제를 사용해야 할뿐만 아니라.
PPS 동일하게 적용 VARCHAR(MAX)
하고 NVARCHAR(MAX)
있음을 SQL 서버 2005 + 사용하는 대신에 TEXT
하고 NTEXT
. 당신은 사용하도록 설정해야합니다 large value types out of row
함께 그들을 위해 sp_tableoption
당신이 그 (것)들을 항상 행 아웃을 저장할 경우.
위 언급 한 바와 같이 현재 , TEXT
미래의 릴리스에서 더 이상 사용되지 할 것입니다 :
이
text in row
옵션은 이후 버전의 SQL Server 에서 제거됩니다 . 새로운 개발 작업에서는이 옵션을 사용하지 말고 현재 사용중인 응용 프로그램을 수정하십시오text in row
. 우리는 당신이 사용하여 대량의 데이터를 저장하는 것이 좋습니다varchar(max)
,nvarchar(max)
또는varbinary(max)
데이터 유형. 이러한 데이터 유형의 행 내 및 행 외부 동작을 제어하려면large value types out of row
옵션을 사용하십시오 .
SQL 서버 2005 새로운 데이터 유형은 소개했다 : varchar(max)
그리고 nvarchar(max)
그들은 기존의 텍스트 형식의 장점을 가지고 : 그들은 데이터 2GB의 영업 이익을 포함 할 수 있지만 그들은 또한의 장점을 대부분 가지고 varchar
와 nvarchar
. 이러한 장점 중에는 substring ()과 같은 문자열 조작 함수를 사용할 수있는 기능이 있습니다.
또한 varchar (max)는 테이블의 디스크 / 메모리 공간에 저장되며 크기는 8Kb 미만입니다. 필드에 더 많은 데이터를 배치 할 때만 테이블의 공간에 저장됩니다. 테이블 공간에 저장된 데이터는 (보통) 더 빨리 검색됩니다.
간단히 말해서 (n) varchar (max)와 같은 더 나은 대안이 있으므로 Text를 사용하지 마십시오. 그리고 일반적인 varchar가 충분히 크지 않을 때, 즉 저장할 문자열이 8000자를 초과 할 것으로 예상되는 경우에만 varchar (max)를 사용하십시오.
언급했듯이 TEXT 데이터 유형에 SUBSTRING을 사용할 수 있지만 TEXT 필드에 8000 자 미만인 경우에만 가능합니다.
ms 2008에서 몇 가지 중요한 변경 사항이 있습니다.-> 사용할 데이터 유형을 결정할 때 다음 기사를 고려해 볼 가치가 있습니다. http://msdn.microsoft.com/en-us/library/ms143432.aspx
당 바이트
- varchar (max), varbinary (max), xml, text 또는 image 열 2 ^ 31-1 2 ^ 31-1
- nvarchar (최대) 열 2 ^ 30-1 2 ^ 30-1
참고 URL : https://stackoverflow.com/questions/564755/sql-server-text-type-vs-varchar-data-type
'Programing' 카테고리의 다른 글
변수 === 정의되지 않은 변수 대 typeof 변수 ===“정의되지 않음” (0) | 2020.03.22 |
---|---|
Android 에뮬레이터에 텍스트 붙여 넣기 (0) | 2020.03.22 |
압축을 풀기에는 너무 많은 값이 있습니다. (0) | 2020.03.22 |
jquery.js와 jquery.min.js의 차이점은 무엇입니까? (0) | 2020.03.22 |
절대 위치 요소를 통해 마우스 이벤트 전달 (0) | 2020.03.22 |