| CMS/프레임워크 | Rhymix 2.1 |
|---|---|
| 개발 언어 | PHP 7.4 |
php7.4v로 만든 파일을 위젯페이지에 넣어 사용하는데요.
mariadb 11v에서 order by number desc 사용시 서버용량이 2G 이상 갑자기 줄어들어 용량 부족이 발생하는데요.
임시방편으로 터미널에서
sudo find /var/lib/docker/containers/ -name "*-json.log" -exec sh -c 'cat /dev/null > "{}"' \; 하면 temp 또는 log 용량이 비워진다고 해서 했더니, 4G가 확보되네요. 그런데 또 금새 다시 용량이 만땅됩니다.
mysql 5.5v (utf8_general_ci )에서는 이런일 없었는데, mariadb 11v (utf8mb4_unicode_ci ) 으로 옮긴후 발생합니다.
구글링해보니 mariadb 11v 는 order by 사용시 문제가 있다고도 하는데,
매번 터머널에 들어가서 반복해서 삭제할 수도 없고 근본 조치 방법이 있을까요?
xone
Lv. 1
댓글 1
도커 로그파일을 삭제했더니 용량이 확보되었다는 말씀이죠? 그 로그파일에 대체 어떤 내용이 그렇게 많이 기록되었는지 확인해 보셨으면 좋았을 텐데요. ㅎㅎ
원론적으로... 용량이 큰 테이블에서 인덱스를 잘 안 타는 ORDER BY 쿼리를 하면, 그 많은 데이터를 메모리에서 정렬하기에는 메모리가 부족하기 때문에 임시파일을 만들어서 filesort를 하게 됩니다. 물론 쿼리 속도는 안드로메다로 가버리죠. 이런 현상이 발생하는 조건은 DB 튜닝값이나 테이블 최적화 상태에 따라 다르고, 버전마다 sort_buffer_size 등의 기본값도 다 다릅니다.
그런데 삭제하신 것은 filesort에 사용하는 임시파일이 아니라 그냥 도커 로그파일인 것 같으니, 위의 원론적인 설명은 참고만 하시고 좀더 구체적인 로그 내용을 살펴보셔야 할 것 같습니다. 단순 임시파일이 아니라 에러를 왕창 뿜고 있었을 수도 있거든요.
그리고 php7.4v, mariadb11v 같은 표현은 일반적으로 버전을 표기하는 방법과 다르기 때문에 검색에 어려움을 겪거나 혼동이 발생할 수 있습니다. MariaDB 11 버전대만 해도 11.4, 11.8 등 여러 가지가 있는데 어느 버전에 문제가 있다는 것인지 모르겠고요. 공개적인 장소에서는 공식적인 표기법을 따르시는 것을 추천드려요.^^