itsource

JSON 문자열을 저장하는 데 가장 적합한 SQL 데이터 유형은 무엇입니까?

mycopycode 2023. 3. 23. 22:44
반응형

JSON 문자열을 저장하는 데 가장 적합한 SQL 데이터 유형은 무엇입니까?

JSON 문자열을 저장하는 데 가장 적합한 SQL 데이터 유형은 무엇입니까?

static List<ProductModel> CreateProductList()
{
    string json = @"[
        {
            ProductId: 1, 
            ProductCode: 'A', 
            Product: 'A'
        },
        {
            ProductId: 2, 
            ProductCode: 'B', 
            Product: 'B'
        }
    ]";

    IList<JToken> tokenList = JToken.Parse(json).ToList();
    List<ProductModel> productList = new List<ProductModel>();

    foreach (JToken token in tokenList)
    {
        productList.Add(JsonConvert.DeserializeObject<ProductModel>(token.ToString()));
    }

    return productList;
}

JSON을 포함하는 문자열을 저장하는 데 사용할 SQL 데이터 유형을 선택하십시오.

  • NVARCHAR(255)
  • TEXT
  • VARBINARY(MAX)

물론 아닙니다.

  • TEXT, NTEXT: 이러한 유형은 SQL Server 2005에서 권장되지 않으므로 새로운 개발에는 사용하지 마십시오.사용하다VARCHAR(MAX) ★★★★★★★★★★★★★★★★★」NVARCHAR(MAX) 대신에

  • IMAGE,VARBINARY(MAX)IMAGE'비호하다'와 로 '하다'도 폐지됩니다.TEXT/NTEXT텍스트 문자열을 바이너리 열에 저장하는 것은 의미가 없습니다.

그래서 기본적으로는VARCHAR(x) ★★★★★★★★★★★★★★★★★」NVARCHAR(x)VARCHAR및 "1바이트"를 저장합니다.NVARCHAR유니코드입니다.유니코드?아랍어, 히브리어, 중국어 또는 기타 서유럽 이외의 문자를 문자열에 사용할 수 있습니까? 럼이같 with 로 가보세요.NVARCHAR

(N)VARCHAR가 있습니다.정의됩니다(는 2바이트로 정의됩니다).최대 길이를 정의하면 8000바이트 이하가 됩니다(VARCHAR '8000'자,NVARCHAR 값으로 하지 않은 "4000")을합니다.(N)VARCHAR(MAX)2GByte입니다.

업데이트: SQL Server 2016은 네이티브 JSON 지원 예정 - 새로운 기능JSON에 )nvarchar과 ( )가 됩니다.FOR JSON 을 JSON

업데이트 #2: 최종 제품에는 Microsoft가 별도로 추가하지 않았습니다.JSON- 데이터로 가 여러 개이 함수는 타입의 데이터형 합니다.JSON은 JSON(JSON)입니다.NVARCHAR(n)

나는 가겠다.그것은 요건에 적합할 것이다.

업데이트: SQL Server 2016 및 Azure SQL에는 많은 네이티브 JSON 기능이 추가되어 있습니다.이는 설계나 접근법에 긍정적인 영향을 미칠 수 있습니다.자세한 것은, https://learn.microsoft.com/en-us/sql/relational-databases/json/json-data-sql-server 를 참조해 주세요.

를 사용하는 것을 추천합니다.nvarchar(max)SQL 2016 Azure SQL JSON입니다.

않을 , 이 기능을 사용할 수 .varbinary(max) combined와 COMPRESS (그리고)DECOMPRESS)가 기능합니다.상세정보 : https://blogs.msdn.microsoft.com/sqlserverstorageengine/2015/11/23/storing-json-in-sql-server/

COMPRESS 및 DECOMPRESS 기능은 표준 GZip 압축을 사용합니다.클라이언트가 GZIP 압축(예를 들어 gzip 콘텐츠를 인식하는 브라우저)을 처리할 수 있는 경우 압축된 콘텐츠를 직접 반환할 수 있습니다.이것은 퍼포먼스/스토리지의 트레이드오프입니다.압축된 데이터를 자주 쿼리하는 경우 매번 텍스트의 압축을 풀어야 하므로 마이그레이션 성능이 느려집니다.

권장되는 데이터 유형은 NVARCHAR입니다.
https://learn.microsoft.com/en-us/sql/relational-databases/json/json-data-sql-server?view=sql-server-ver15#store-and-index-json-data-in-sql-server][1]을 참조해 주세요.

언급URL : https://stackoverflow.com/questions/9207404/whats-best-sql-datatype-for-storing-json-string

반응형