복붙노트

[SQL] JSON 문자열을 저장하기위한 최적의 SQL 데이터 타입은 무엇입니까?

SQL

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 데이터 유형을 사용해야합니까?

해결법

  1. ==============================

    1.확실히:

    확실히:

    2 바이트 당 문자 유니 코드 모드에서 VARCHAR 저장 비 유니 코드 문자열 (문자 당 1 바이트) 및 NVARCHAR 저장 모든 : 그것은 기본적으로 VARCHAR (X) 또는 NVARCHAR (X)를 남긴다 그래서. 그래서 당신은 유니 코드를 필요합니까? 잠재적으로 당신의 문자열에서 아랍어, 히브리어, 중국어 또는 다른 비 서구 유럽 문자가 있습니까? 그런 다음 NVARCHAR로 이동

    (N) VARCHAR 컬럼은 두 가지 종류로 제공 : 중 당신은 그 결과 8000 바이트 이하 (VARCHAR 최대 8000 자, 최대 4000 NVARCHAR), 또는이 충분하지 않습니다 경우 (N) VARCHAR를 사용 (최대 길이를 정의 데이터의 2 기가 바이트까지 저장할 MAX) 버전.

    업데이트 : - (NVARCHAR을 기반으로) 새로운 JSON 데이터 형식을 JSON 형식으로 쿼리에서 변환 출력에 대한 JSON 명령뿐만 아니라, 소개합니다 SQL 서버 2016 네이티브 JSON 지원을해야합니다

    업데이트 # 2 : 최종 제품에 마이크로 소프트는 별도의 JSON의 데이터 유형을 포함하지 않았다 - 대신 (JSON으로 데이터베이스 행을 패키지로, 또는 관계형 데이터로 JSON을 구문 분석)의 컬럼에서 작동하는 JSON-기능을 제공하고 있습니다 NVARCHAR (N)을 입력

  2. ==============================

    2.나는 NVARCHAR (최대)에 갈 것이다. 즉, 요구 사항에 적합해야한다.

    나는 NVARCHAR (최대)에 갈 것이다. 즉, 요구 사항에 적합해야한다.

    최신 정보: SQL 서버 2016 푸른 SQL로 추가 네이티브 JSON 기능이 많이 있습니다. 이것은 긍정적 디자인이나 접근 방식에 영향을 줄 수 있습니다. https://docs.microsoft.com/en-us/sql/relational-databases/json/json-data-sql-server : 당신은 더 많은 것을 위해이 글을 읽을 수 있습니다

  3. ==============================

    3.난 당신이 JSON은 SQL 2016 또는 푸른 SQL에 기능을 사용하려는 경우 NVARCHAR (최대)를 사용하는 것이 좋습니다.

    난 당신이 JSON은 SQL 2016 또는 푸른 SQL에 기능을 사용하려는 경우 NVARCHAR (최대)를 사용하는 것이 좋습니다.

    당신이 그 기능을 사용하지 않는 경우에는 COMPRESS (및 압축 해제) 기능과 결합을 varbinary (max)를 사용할 수 있습니다. 더 많은 정보 : https://blogs.msdn.microsoft.com/sqlserverstorageengine/2015/11/23/storing-json-in-sql-server/

  4. ==============================

    4.권장 데이터 형식은 NVARCHAR이다. 참조하시기 바랍니다 https://docs.microsoft.com/en-us/sql/relational-databases/json/json-data-sql-server?view=sql-server-ver15#store-and-index-json-data-in- SQL 서버] [1]

    권장 데이터 형식은 NVARCHAR이다. 참조하시기 바랍니다 https://docs.microsoft.com/en-us/sql/relational-databases/json/json-data-sql-server?view=sql-server-ver15#store-and-index-json-data-in- SQL 서버] [1]

  5. from https://stackoverflow.com/questions/9207404/whats-best-sql-datatype-for-storing-json-string by cc-by-sa and MIT license