Database

    flyway를 이용한 db migration

    사용이유로컬에서 변경한 데이터베이스의 스키마나 데이터를 운영 데이터베이스에 반영하는 것을 누락하는것을 막기 위함.(형상관리 용이)개발 DB와 운영 DB의 스키마를 비교하거나, 운영 DB에 수작업을 가하는 비용과 위험성을 줄이기 위해 사용적용 방법migrate를 하기 위한 선택지는 2개가 있다.1. 기존 DB data를 지우고 baseline-on-migrate: true 옵션을 주고 초기화 + flyway_schema_history table을 생성하는 방법2. 기존 DB data를 유지한 상태에서 baseline을 현시점으로 잡고 flyway_schema_history table만 생성하는 방법 적용* 예시는 위의 1번 방법으로 적용build.gradle /* flyway dependency 추가 */..

    DB Index란?

    기존에도 인덱스가 조회 성능 개선에 도움이 된다는 것은 이론적으로 알고 있었다.하지만 이번 사내 기능 개선 작업을 통해 직접 인덱스를 설계하고 적용하여, 실질적으로 성능을 개선한 것은 처음이었다.특정 조건에 따라 데이터를 조회하는 쿼리 속도가 예상보다 느렸고, 원인 분석 중 인덱스 최적화 필요성을 확인했다.적용 후, 쿼리 응답 속도가 확연히 개선되는 것을 직접 경험할 수 있었다.본론으로 들어가 어떠한 구조인지 한번 봐보자!B-Tree(Balanced Tree 균형 트리)자료구조에서 범용적으로 사용되는 데이터 구조, 인덱스만을 위한 표현은 아니고 여러곳에서 쓰인다. 말 그대로 균형 잡힌 트리를 의미이미지에서 언급되는 노드란 트리구조에서 존재하는 공간을 의미함.노드에 해당하는 것이 페이지인데 페이지는 16k..