[MySQL] Partition 1. 테이블 수동 분할과 파티셔닝 (+. 샤딩 / 래플리케이션)
·
DB
인턴 중 데이터 수집 테이블의 '월별 파티셔닝 자동화 프로시저' 개발 업무를 담당하게 됐다.파티션을 하는 작업이 처음이기도 하였고, 프로시저를 작성하는 문법이 달라 관련해서 래퍼런스를 찾아보던 중 "현재 기업의 운영 환경에 적용된 파티셔닝과 현업에서 일반적으로 사용하는 파티셔닝" 개념에 차이가 있다는 것을 알게 되었다. 간단히 MySQL에서 지원하는 파티셔닝은 1개의 논리테이블에서 N개의 물리테이블을 갖도록 하는 기능이다. 하지만 현재 업무에서 적용하고 있는 파티셔닝은 "N개의 논리테이블에서 각자 1개의 물리테이블을 갖도록 설계됐었다. 이는 아래와 같이 각 월별로 테이블이 관리하도록 되었는데, 시간이 흐를수록 테이블이 늘어나 데이터베이스를 관리하기 매우 불편한 설계가 됐다. 그래도 일단은 기존의 플로우대..
[MySQL] 테이블 복사하는 방법 (DDL, `LIKE`)
·
DB
기존 데이터베이스 테이블에 있는 데이터를 활용한 테스트를 진행하고자, 테이블 복사에 대한 방법을 찾아보고 정리했다.  1. 테이블 구조 복사기존 테이블의 생성 구문을 확인한다.SHOW CREATE TABLE existing_table;  2. 새 테이블 생성위에서 확인한 생성 구문에서 테이블명만 바꾸고 실행한다.  3. 데이터 복사INSERT INTO new_table SELECT * FROM existing_table;   번외.테이블 복사에 관해 찾아보던 중, 평소 즐겨보던 블로그에서 `LIKE`를 활용한 테이블 구조 복사는 'PK', 'Auto increment'와 같은 설정은 복사할 수 없다는 글을 보게 되었다. "왜 `LIKE`는 위 설정을 복사할 수 없을까?" 하는 물음에 `LIKE`에 대한 ..
Sysbench 벤치마크 & 테스트 데이터 (for. Mac)
·
TIL
테스트 환경computer : macbook procpu  : m1ram : 16gbssd : 512gbsysbench version: 1.0.20  cf. 테스트 결과 분석 키워드 total time: 테스트가 실행된 총 시간total number of events: 테스트 동안 발생한 총 이벤트 수Latency: 이벤트를 처리하는데 걸린 평균 시간Threads fairness: 스레드 공정성(모든 스레드가 균일하게 이벤트를 처리했음을 보여주는 지표)  1. sysbench 설치mac 환경에서는 brew를 통해 sysbench를 설치할 수 있다.brew install sysbenchsysbench --version   2. CPU 테스트1초 당 처리된 이벤트(계산) 수 : 8,016,426.01sysb..
Linux에서의 swap 메모리 설정
·
DevOps/AWS
AWS 프리티어 계정으로 EC2 인스턴스를 사용 중, 프로젝트를 빌드하는 속도에 답답함을 느껴 관련 이슈를 찾아보게 되었다. 프리티어 EC2는 1GB RAM과 30GB 스토리지를 사용할 수 있다.위의 RAM 성능으로는 빌드하는 속도가 느리고, 더 큰 프로젝트를 빌드하는 경우 서버가 다운되는 현상이 발생한다.이를 스토리지의 일부를 RAM처럼 사용하는 RAM Swap을 통해 부족한 메모리 현상을 해결해보고자 한다.    1. 현재 swap 메모리 확인free   2. 현재 디스크 여유 공간, 사용량 확인   3. 2G SSD 메모리를 RAM처럼 쓸 수 있도록 swap 메모리를 할당합니다.# swap 메모리 할당$ sudo dd if=/dev/zero of=/swapfile bs=128M count=1632+..
Spring Boot에서의 엑셀 다운로드 API
·
Spring/끄적끄적
1. 의존성 추가 Apache POIMicrosoft Office 파일(Word, Excel, PowerPoint)을 JAVA로 읽고 쓰기 위한 라이브러리이다.Excel에서는 .xls, .xlsx 파일 형식 모두 지원한다.implementation 'org.apache.poi:poi-ooxml:5.2.2'implementation 'org.apache.poi:poi:5.2.2'  2. Apache POI 구현체 Apache POI의 구현체HSSF (Horrible Spreadsheet Format): Excel 97-2003(.xls) 파일 형식을 지원XSSF (XML Spreadsheet Format): Excel 2007 이상(.xlsx) 파일 형식을 지원SXSSF (Streaming XML Spre..
AWS Secrets Manager 적용하기
·
DevOps/AWS
이전 프로젝트에서는 API 키를 private repo를 만들어, 메인 repo의 서브모듈로 두어 DB와 API 키 관리를 진행했었다.(관련 글은 작성하지 않았지만, 추후에 사이드 프로젝트에서 다시 사용하게 된다면 정리해 봐야겠다!) 인턴 업무 중 프로젝트 하나를 AWS Secrets Manager를 적용해달라는 테스크를 받았다.적용하는데 있어 크게 어려움이 없었지만, 개인적으로 Spring에서 의존하게 되는 라이브러리들에 대해서 공부하는 과정이 도움이 되어 간략히 정리할 겸 글을 작성하게 되었다.   1. AWS 설정* IAM 사용자 권한 설정에서 'SecreatsManagerReadWrite'를 반드시 넣어주어야 한다.  1) 'AWS Secrets Managersec > 보안 암호' 로 들어간다. ..