클래스나 dictionary 타입을 읽고 쓸 때 데이터 크기가 궁금합니다.

  1. 만약 Dictionary<int, string>에 { 1, “value” }하나를 넣고 데이터베이스에 쓰면 4 + 5 바이트를 쓰는건가요?

  2. Dictionary<int, string>대신 Dictionary<byte, string>로 지정해서 저장하면 1 + 5 바이트를 쓰나요?

  3. 클래스나 구조체가 비슷한 형식으로 저장되는 것 같던데 변수의 이름이 길면 key값의 크기가 커져서 데이터의 크기도 커지게 되나요?

안녕하세요 개발자님

insert, update 시도한 데이터는 내부적으로 json으로 변환된 뒤

서버에서 string 형태로 저장하는 구조입니다.

그렇기에 1, 2번의 경우 저장되는 데이터의 크기는 동일합니다.

3번에서 말씀하신 것 처럼

key의 크기가 커지면 데이터의 크기 또한 커지게 됩니다.

참고부탁드리겠습니다.

답변 감사드립니다!

제가 Json데이터의 표현식에 대해 자세하게 알지 못해 조금 더 여쭤봐야 할 것 같습니다.

1,2번의 경우 byte나 int나 long이나 Json데이터로 변환 시 표현식의 길이는 동일한 것으로 이해하면 되는건가요?

그리고 데이터 크기가 숫자의 길이에는 영향을 받지 않을 것 같은데 맞나요?

안녕하세요 개발자님,
문의하신 내용에 순차적으로 답변드립니다.

  • 1,2번의 경우 byte나 int나 long이나 Json데이터로 변환 시 표현식의 길이는 동일한 것으로 이해하면 되는건가요?
    네, 맞습니다.

  • 데이터 크기가 숫자의 길이에는 영향을 받지 않을 것 같은데 맞나요?
    string 변환하여 저장되기에 숫자의 길이가 길어진다면 데이터 크기 또한 영향을 받게 됩니다.

감사합니다. :smiley:

컬럼에 클래스, 구조체나 list형태의 데이터가 아닌 int, double같은 데이터를 넣어도
json으로 변환되서 그 숫자의 길이에 따라 데이터 크기가 변하게 되나요?

그냥 모든 데이터가 json으로 변환되고 string 형태로 저장된다고 생각하면 되나요?

개발자님께서 이해해주신 바와 같이
json 형태로 변환되어 string 형태로 저장되고
그 길이에따라 크기가 변하게 됩니다.