반응형
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
반응형
'source' 카테고리의 다른 글
| matplotlib Python 설치 문제 (0) | 2022.10.02 |
|---|---|
| 캔버스 요소에서 마우스 클릭 좌표를 가져오려면 어떻게 해야 합니까? (0) | 2022.10.02 |
| tailwindcss @apply 디렉티브가 vue 구성 요소 내에서 작동하지 않음 (0) | 2022.10.02 |
| 간단한 PHP 개발 서버가 있습니까? (0) | 2022.10.02 |
| JavaScript에서 URL의 호스트 이름 부분을 추출하는 방법 (0) | 2022.10.02 |