mysql group_concat 환경변수 변경시 영향도 문의 0 4 2,966

by 양디비 [MySQL] mysql maria group_concat group_concat_max_len [2019.04.29 09:33:08]


안녕하세요. 초보 DBA입니다. 

회사에서 실사용중인 maria(mysql) 5.7버전의 DB가 있습니다. 

Master/Slave 구성으로 되어있고 , innodb 사용중입니다

현재  프로시저에서 GROUP_CONCAT 함수를 사용중인데, 특정 컬럼들(3가지)을 GROUP_CONCAT으로 합쳐서 리턴해주는 형식으로 구성되어 있습니다. 해당리턴값을 받아서 파일화한다고 하는데, 데이터가 잘려서 리턴되고 있었습니다.

구글검색을 통해서,  group_concat_max_len 값이 현재 default로 되어있어서 데이터가 잘려서 리턴되고 있다는 것 까지 파악은 했는데, 어떻게 해결해야 좋을지 질문드립니다. 

임시적으로, 먼저 프로시저에 명령어를 추가하여 리턴할 예정인데,

set session group_concat_max_len = 1000000

DB성능상 이슈는 없을지 문의드립니다. 

추가로, 하루치 데이터를 묶어서 리턴해주는 것이므로

 group_concat_max_len의 MAX치보다 더 많은 데이터를 가져와야할 경우도 발생할 수 있을 듯합니다.

 데이터량이 너무 많아질 경우 어떤식으로 처리하면 좋은지 조언부탁드립니다. 

 

 

 

by 르매 [2019.04.29 12:15:29]

하고 계신 것처럼 SP에서 충분한 길이로 SET 하시면 됩니다.

다만 8byte까지라서, 그 이상이면 다른 방법을 생각하셔야 합니다.


by 양디비 [2019.04.29 15:02:47]

답변감사합니다 ㅠㅠ MAX 이상의 방법에 대해서는 재고려가 필요하겠네요 ㅠ 혹시 프로시저상에서 GROUP_CONCAT_MAX_LEN값을 늘린다고 DB에 성능이슈가 발생하진 않겠지요? 


by 르매 [2019.04.29 16:43:02]

세션이 차지하는 메모리의 크기와 연관된 것인데.. 특정 SP를 실행하는 세션에서만 일시적으로 늘리는 것이라 딱히 문제 없는 것으로 압니다.

오히려 my.cnf에서 global로 최대 크기로 잡는 것이 문제가 될 수도 있겠죠.


by 양디비 [2019.04.30 09:57:45]

답변 너무 감사드립니다~! SP상에서 수정하여, 현재 이상없이 사용중입니다!! 

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입