MySQL
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)
워낙 데이터가 많아서시간이 꽤나 걸렸지만, 문제 없이 돌아갔고 생성된 파일을 확인해 보았다. 그런데..
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을 사용하였고 그 결과는
데이터가 많아서 그림에 다 나오진 않았지만 아무튼 또 하나 해결했다잉~ ㅋ.
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)
'연구개발 > MYSQL' 카테고리의 다른 글
show status로 mysql 모니터링 하기 (0) | 2014.07.21 |
---|---|
MySQL 데이터 형식 (0) | 2014.06.27 |
Mysql bin-log 커졌을때 (bin-log 관리하기) (0) | 2014.05.23 |
slow query 분석 (0) | 2014.05.23 |
mysql { timestamp | datetime } default current_timestamp on update current_timestamp (0) | 2014.05.22 |