source

MySQL의 JSON에는 BLOB 또는 텍스트를 사용해야 합니까?

gigabyte 2022. 10. 2. 22:04
반응형

MySQL의 JSON에는 BLOB 또는 텍스트를 사용해야 합니까?

저장하려고 합니다.json_encoded문자열이 표시됩니다.길이가 얼마나 될지는 정확히 알 수 없지만, 분명 길 거예요.어떤 필드 타입을 사용할지 고민입니다.blob또는text?

빠른 검색보다 공간을 최대한 절약할 수 있는 컬럼을 선호합니다.어쨌든 인덱스만 해야 할 다른 컬럼이 있습니다.

MySQL 설명서에서 설명한 바와 같이 5.7.8 이후 네이티브 JSON 데이터 유형이 지원됩니다.

JSON 데이터 유형은 문자열 열에 JSON 형식의 문자열을 저장하는 것보다 다음과 같은 이점을 제공합니다.

  • JSON 열에 저장된 JSON 문서의 자동 유효성 검사.문서가 잘못되면 오류가 발생합니다.
  • 최적화된 스토리지 형식.JSON 열에 저장된 JSON 문서는 문서 요소에 대한 빠른 읽기 액세스를 허용하는 내부 형식으로 변환됩니다.나중에 서버가 이 바이너리 형식으로 저장된 JSON 값을 읽어야 할 경우 텍스트 표현에서 값을 구문 분석할 필요가 없습니다.이진 형식은 서버가 문서에서 하위 오브젝트 또는 중첩된 값을 앞뒤의 모든 값을 읽지 않고 키 또는 배열 색인으로 직접 검색할 수 있도록 구성되어 있습니다.

따라서 MySQL 설명서에 나와 있듯이 텍스트가 아닌 JSON 데이터 유형을 사용해야 합니다.

blob보통 이미지, 바이너리 등을 위한 것입니다. text고객님의 경우 충분할 것입니다.그렇지 않으면longtext그게 정말 걱정된다면 더 큰 공간을 가질 수 있어요.

검색을 통해 저장하기 때문에json_encode'd 물건, 그래도 전화해야 할 거야'json_decode어플리케이션에서 유용하게 쓰려면 이 경우 데이터 유형의 선택은 중요하지 않다고 생각합니다.

더 나은 방법은 하나의 큰 json 문자열에 관련 내용을 저장하는 대신 데이터베이스 설계를 정규화하는 것입니다.

언급URL : https://stackoverflow.com/questions/10201957/should-i-use-blob-or-text-for-json-in-mysql

반응형