group_concat size > db

본문 바로가기

db

group_concat size

페이지 정보

작성자 서방님 댓글 0건 조회 39회 작성일 16-04-13 17:08

본문

group_concat_max_len 을 변경하면 된다.

커맨드로는

SET GLOBAL group_concat_max_len=#size#

SET SESSION group_concat_max_len=#size#

재시작 할 필요없고, 재시작하면 기본설정으로 초기화된다.




my.cnf의

[mysqld] 밑에...

group_concat_max_len=8K 

이런식으로 넣어주면 된다. 물론 재시작 해야함.



MySQL GROUP_CONCAT 사이즈 조절하기



GROUP_CONCAT 명령을 이용하여 데이터를 출력하기 위해 다음과 같은 쿼리를 사용했다. 


mysql> SELECT merge, title, GROUP_CONCAT(keyword SEPARATOR ';') FROM table_merge

_last GROUP BY merge, title into outfile "./table_merge_GROUP.txt";

Query OK, 43975 rows affected (6 min 31.93 sec)


워낙 데이터가 많아서시간이 꽤나 걸렸지만, 문제 없이 돌아갔고 생성된 파일을 확인해 보았다. 그런데.. 


116884444FAB26091C97A0


GROUP_CONCAT으로 묶였던 데이터가...짤렸다. 


왜그런지 이유를 살펴보니, 바로 MySQL 세팅 상의 GROUP_CONCAT SIZE 문제.. 기본적인 사이즈가 어느정도로 설정되어 있는지 확인해 보자. 


mysql> show variables like "group_concat_max_len";

+------------------------------+-------+

| Variable_name              | Value |

+------------------------------+-------+

| group_concat_max_len | 1024  |

+------------------------------+-------+

1 row in set (0.00 sec)


기본적으로는 1024로 설정되어 있다. 따라서 그 이상의 크기를 갖는데이터는 짤렸던 것이다. 



  GROUP_CONCAT 사이즈 조절 명령


SET @@group_concat_max_len = 조절할 크기 ; 


mysql> set @@group_concat_max_len = 50240;

Query OK, 0 rows affected (0.00 sec)


mysql> show variables like "group_concat_max_len";

+------------------------------+--------+

| Variable_name               | Value |

+------------------------------+--------+

| group_concat_max_len | 50240 |

+------------------------------+--------+

1 row in set (0.00 sec)



사이즈가 변경된 것을 확인한후, 다시 GROUP_CONCAT을 사용하였고 그 결과는 


1343A9364FAB270E3879D8


데이터가 많아서 그림에 다 나오진 않았지만 아무튼 또 하나 해결했다잉~ ani_06.gif?v=2 ㅋ. 



  SORT_BUFFER_SIZE 조절 명령


추가로 sort_buffer_size를 조절 하는 것을 적어 놓는다. 

sort_buffer_size 크기를 키우면, ORDER BY 나 GROUP BY 의 속도가 향상된다. 


mysql> show variables like "sort_buffer_size";

+------------------+--------+

| Variable_name      | Value  |

+------------------+--------+

| sort_buffer_size    | 524288 |

+------------------+--------+

1 row in set (0.00 sec)


기본값은 524288 이다. 


mysql> set @@sort_buffer_size = 924288;

Query OK, 0 rows affected (0.00 sec)


mysql> show variables like "sort_buffer_size";

+------------------+--------+

| Variable_name      | Value  |

+------------------+--------+

| sort_buffer_size   | 924288 |

+------------------+--------+

1 row in set (0.00 sec)


댓글목록

등록된 댓글이 없습니다.

Total 447건 1 페이지
게시물 검색

회원로그인

접속자집계

오늘
165
어제
365
최대
592
전체
40,139

그누보드5
Copyright © seobangnim.com All rights reserved.
자바스크립트를 활성화 하세요![ 브라우저에서 자바스크립트를 활성화하는 방법 ]