티스토리 뷰
Database
mariadb (Row size too large (> 8126). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help.In current row format, BLOB prefix of 768 bytes is stored inline)
CHOMAN 2020. 4. 23. 11:49참고사이트
https://mariadb.com/kb/en/innodb-row-formats-overview/#checking-a-tables-row-format
update 쿼리 실행시 발생
update 테이블 set 컬럼='내용' where
error 내용
Row size too large (> 8126). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help.
In current row format, BLOB prefix of 768 bytes is stored inline
정리
InnoDB는 하나의 레코드 삽입시 (8000byte) 제한됨
에러 내용은 컬럼 타입을 TEXT, BLOB 으로 변경하거나 ROW_FORMAT 을 DYNAMIC 혹은 COMPRESSED 으로 변경해보라는 메세지
에러 발생한 테이블의 컬럼은 mediumtext, 테이블의 ROW_FORMAT 은 Compact 타입이였음
컬럼 타입 확인
desc 테이블명;
mediumtext
테이블 row_format 확인
show table status like '테이블';
Compact
innodb_file_format = Barracuda 변경해야 함
SET GLOBAL innodb_file_format = barracuda;
DYNAMIC 혹은 COMPRESSED 사용하기 위해서는 이노디비 파일 포맷을 바라쿠다로 변경해야 함
테이블 row_format 바꾸기
COMPRESSED 로 바꾸기
ALTER TABLE 테이블 ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=8;
DYNAMIC 로 바꾸기
ALTER TABLE 테이블 ROW_FORMAT=DYNAMIC;
작업하기전에 dump 파일 백업은 기본
COMPRESSED 와 DYNAMIC 중에 머가 더 좋은지는 모르겠으나 난 DYNAMIC 으로 했음
'Database' 카테고리의 다른 글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- IPSEC
- iptables
- 베이어다이나믹
- MySQL
- GeoIP
- ntp
- glusterfs
- php
- ssh
- cURL
- gitlab
- Apache
- centos8
- 리눅스
- HAProxy
- SSL
- pptp
- NGINX
- virtualbox
- centOS7
- OpenVPN
- yum
- WAF
- galera
- kvm
- mod_security
- 인증서
- mariadb
- softether
- L2TP
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함