data/mysql
-
MySQL 힌트를 활용한 쿼리 튜닝data/mysql 2020. 7. 1. 10:03
업무 중 특정 기간동안 쌓인 로그를 읽어 가공을 하는게 있습니다. SELECT id , country , os , sum(qty) as count , sum(price * qty) as amount FROM log WHERE date BETWEEN #{start} AND #{end} GROUP BY id, country, os date 컬럼에 인덱스 설정이 되어 있음에도 불구하고 시간이 지나 데이터 건수가 늘어날수록 해당 쿼리 수행 시간이 길어지는 현상이 발생했습니다. 쿼리 실행 계획을 확인해보니 date 컬럼의 인덱스를 타지 않고 있었습니다. MySQL에서 힌트 사용을 위해 USE INDEX, FORCE INDEX를 사용할 수 있는데 USE INDEX를 사용해도 힌트가 제대로 동작하지 않는 경우가 있어..
-
Binary log 설정data/mysql 2020. 5. 19. 07:52
요즘 스케쥴러를 통한 데이터 작업의 영향으로 개발DB의 binary log의 양이 증가해 수시로 서버 디스크 사용량 경고 알람을 받고 있었습니다. 알람을 받으면 binary log를 삭제(2020/04/29 - [data/mysql] - MySQL binary log 삭제)하곤 했는데 유입되는 데이터의 양이 많아지면서 주기도 더 빨라져서 관련 설정을 좀 찾아봤습니다. 참고 : MySQL 5.7 메뉴얼 우선 개발DB이기 때문에 binary log의 중요성이 많이 떨어지기 때문에 설정을 변경했고 운영환경이나 데이터가 중요한 환경이라면 충분히 검토 후 설정을 하시기를 권고합니다. my.cnf 파일의 변경한 설정은 아래와 같습니다. # Binary log max_binlog_size=512M expire_log..
-
MySQL DATE_FORMAT()을 사용해서 월별 가입자 추출data/mysql 2020. 5. 4. 19:55
월별 가입자 수를 추출하기 위해 DATE_FORMAT() 펑션을 사용해 봤습니다. 사용자 테이블은 사용자ID, row 생성일, row 최종수정일 등의 정보로 구성되어 있습니다. DATE_FORMAT(date, format) 형태로 사용할 수 있으며 여기서는 월단위로 추출을 할거라 '%Y-%m' 포맷으로 지정했습니다. MySQL 5.7 기준 DATE_FORMAT() 펑션에 대한 자세한 내용은 여기에서 확인할 수 있습니다. SELECT DATE_FORMAT(created, '%Y-%m'), COUNT(DATE_FORMAT(created, '%Y-%m')) FROM user GROUP BY DATE_FORMAT(created, '%Y-%m'); 다음과 같은 결과를 확인할 수 있습니다.
-
MySQL binary log 삭제data/mysql 2020. 4. 29. 07:19
테스트용으로 사용중이 MySQL 서버 디스크를 98% 사용중이라는 알람을 받았습니다. 현재 도커로 MySQL을 구동해서 사용중인데 확인해보니 MySQL data 폴더에 binlog가 60여개 쌓여 있는걸 발견했습니다. 해당 파일을 그냥 삭제하는 것보다 MySQL 콘솔에서 작업하는게 좋다고 해서 워크벤치에 접속해서 로그들을 퍼지해줬습니다. 아래는 퍼지 후 결과인데 퍼지 전에는 로그파일 갯수와 동일하게 조회 됩니다. 퍼지 후 디스크 사용률은 24%로 확인됐습니다. binlog가 60기가가 넘었는데 테스트용 DB라 왜 이렇게 쌓였는지 모르겠네요.. 저의 경우 테스트용 DB라 크게 문제될게 없어 바로 퍼지 작업을 했지만 binlog를 임의로 제거할 경우 DB 운영에 문제가 생길 수도 있으니 잘 확인하고 작업하셔..
-
MySql Workbench connection 정보 관리data/mysql 2020. 4. 24. 15:20
윈도우 환경에서 MySql 워크벤치 connection 정보 관리 방법 1. connection 정보 export 방법 Tools > Configuration > Backup Connections 메뉴 선택 -> connections.xml, server_instances.xml 파일 백업 2. connection 정보 import 방법 2-1. Backup Connections 메뉴에서 생성한 zip 파일이 있는 경우 Tools > Configuration > Restore Connections 메뉴 선택 -> zip 선택 후 복구 2-2. connections.xml 파일만 있는 경우 윈도우 탐색기 > %APPDATA%\MySQL\Workbench 경로로 복사 후 워크벤치 재기동