Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
Tags
- 1*1000
- NamedEntityGraph
- mysql8업그레이드
- 오블완
- yml
- 운동해서 광명찾자
- MSSQL
- load order
- https
- mysql not equal null
- createEntityGraph
- getDateCellValue
- MYSQL
- apatch poi
- Protecle
- 티스토리챌린지
- fractional seconds
- spring boot
- 운영체제별 차이
- java jdbc utf8mb4 연결 오류
- jdbc utf8mb4
- RootGraph
- mysql =
- +9:00
- mysql equal null
- AuditingEntityListener
- getEntityGraph
- sendFractionalSeconds
- jdbc characterencoding utf8mb4
- 버전 문자열 비교
Archives
- Today
- Total
Hello
MySQL LONGTEXT와 DW 문자열 길이 제한: 실무 이슈 정리 본문
728x90
1. 문제아닌 문제의 시작..?
빅데이터팀으로부터 MySQL에 LONGTEXT 컬럼이 추가되었는지 확인 요청이 들어왔습니다.
확인 결과, 담당자가 관리자 기록용으로 사용하기 위해 LONGTEXT로 memo 컬럼이 아래와 같이 추가했다고 합니다.
ADD COLUMN `memo` LONGTEXT NULL DEFAULT NULL;
2. LONGTEXT 사용 이유..?
컬럼을 추가하신 분이 길이에 대한 요구사항이 없어 안전하게 가장 큰 값으로 설정해 두셨다고 한다.(통도 크시지 참)
TEXT | MEDIUMTEXT | LONGTEXT | |
최대 크기 | ~64KB | ~16MB | ~4GB |
인덱스 제한 | 인덱스 길이 제한 존재 (최대 길이 지정 필요) | 동일 | 동일 |
메모리 사용 | 적음 | 중간 | 많음 |
쿼리 성능 영향 | 작음 | 중간 | 큼 |
정렬·GROUP BY 제한 | 제한 있음 (기본 1024바이트까지만 정렬) | 동일 | 동일 |
스토리지 | 외부 저장됨 (InnoDB의 경우 LOB 영역) | 외부 저장됨 | 외부 저장됨 |
3. DW 제약사항
빅데이터팀은 DW 적재 시 문자열을 최대 8000자 까지만 저장 가능하기 때문에 이보다 긴 문자열은 적재 대상에서 제외되거나 오류가 발생 할 수 있어 컬럼 타입 수정요청을 해주셨다.
SQL Server 기반
DW에서는 일반적으로 VARCHAR(8000)까지만 문자열을 일반 컬럼으로 저장할 수 있으며, 그 이상은 VARCHAR(MAX)로 지정되어 LOB(대용량 객체)로 처리되기 때문에 성능 저하나 제약이 생길 수 있습니다.
DW에서는 문자열을 8000자 이하로 제한하는 경우가 많습니다.
4. 해결
실제로는 8000자를 넘는 메모가 없을 것이라는 점, 해당 메모 컬럼이 관리용 메모로 간단히 쓰일 용도라는 점을 고려하여
LONGTEXT를 VARCHAR(255)로 변경하여 DW 호환성과 성능 문제를 해결하기로 결정했습니다.
🧠 요약 및 회고
DW의 문자열 컬럼이 최대 8000이라는 것을 알게 되었다 올. 근데 진짜 메모를 LONGTEXT로 한건 참치꽁치임ㅎㅎ
내용 | |
설계 시점 | 메모 길이에 대한 명확한 요구사항 없음 → LONGTEXT 채택 |
DW 시스템 제약 | DW 시스템은 VARCHAR(8000) 또는 그 이하 길이만 지원 |
기술적 불일치 | MySQL 저장 가능 범위와 DW 수용 가능 범위 간 차이 발생 |
해결 | 실질적으로 LONGTEXT범위나 8000자를 초과하는 메모가 드물것이기 때문에, 타입을 VARCHAR(255)로 낮춰 차이 해결 |
Mysql Text 관련 참고:
https://dev.mysql.com/doc/refman/8.0/en/storage-requirements.html#data-types-storage-reqs-numeric
728x90
'DB' 카테고리의 다른 글
MySQL 테이블명 대소문자 불일치 이슈 (0) | 2025.04.03 |
---|---|
[MySQL]LEFT JOIN에서 기간 검색과 조인 조건 인덱스 설정 (0) | 2024.12.17 |
[MySQL] Charset과 Collation개념 및 조합 (0) | 2024.08.02 |
[MySql] SQLException: Zero date value prohibited (0) | 2024.05.31 |
[MSSQL] order by 정렬 기준의 데이터가 유니크 하지 않을 때 (0) | 2024.05.07 |