MySQL JSON 타입 컬럼 사용 해보기
2021-08-07 17:14:25
최근에 MySQL에 컬럼 타입 중 JSON이 있다는 걸 알게 되었다
나온지는 오래 됫음 5.7후반부터 지원되었다고 함
NoSQL처럼 컬럼 제한 없이 자유롭게 쓰라는 의미로 만들어진 거 같은데.. 👀
그래서 10개 키를 가진 JSON 데이터 백만개를 저장 했을 경우 어떤지 비교 해보았다
1 | { |
- id(INT), value(JSON) 컬럼에 저장
- id(INT), 키 이름(VARCHAR) 10개를 만들어서 저장
크기
저장 후 테이블 사이즈를 확인 해보니 JSON 컬럼 테이블이 꽤 높았다
- JSON -> 246.75MB
- 10개 컬럼 -> 146.67MB
실행속도
PK로 검색하는건 의미가 없어서 임의의 JSON 키 값을 검색했는데 차이는 거의 없었다
1 | -- 0.00052sec |
타입스크립트에서 써보기
1 | npm i mysql2 -S |
mysql2를 설치하여 사용, 여담으로 npm mysql은 8.@버전 연결 지원이 안 됨 😭
인터페이스만 잘 정의해주면 특별한 건 없었다
1 | import { createConnection, RowDataPacket, FieldPacket, Connection } from "mysql2/promise"; |