728x90
반응형
SMALL

PostgreSQL 3

[Supabase] 응답속도 70% 단축! Mumbai에서 Seoul로 DB 옮기며 겪은 일들

왜 DB 리전을 옮기게 됐을까?서비스를 처음 만들 때는 DB 리전을 크게 신경 쓰지 않았습니다. 가입 당시 기본으로 잡혀있던 인도(Mumbai) 리전에 그대로 DB를 생성했는데, 정작 애플리케이션 서버는 한국 리전(Oracle Cloud)에 있었습니다. 문제는 같은 요청인데도 응답이 1초가 걸릴 때도 있고 30초 가까이 걸릴 때도 있었습니다. 처음에는 쿼리 문제인 줄 알고 인덱스와 커넥션 풀 설정을 한참 들여다봤는데, 정작 DB 쿼리 자체는 50~90ms로 전혀 느리지 않았습니다. 진짜 원인은 한국 ↔ 인도 간 리전간 네트워크 왕복(RTT)이 요청마다 누적되는 것이었습니다.Supabase 리전 목록(https://supabase.com/docs/guides/platform/regions)을 보면 알 수 ..

IT/DB 2026.06.11

[DB] Flyway 마이그레이션 실패 원인: desc 컬럼의 함정

[DB] Flyway 마이그레이션 실패 원인: desc 컬럼의 함정 🚨 문제 상황Spring Boot + Flyway + PostgreSQL 환경에서컨테이너 기동 시 다음과 같은 에러가 발생했다.ERROR: syntax error at or near "desc"SQL State : 42601Location : db/migration/V2__insert_initial_data.sqlLine : 10Flyway 마이그레이션 도중 SQL 문법 오류로 인해컨테이너가 정상적으로 기동되지 않는 상황이었다.📄 에러가 발생한 SQL (문제 코드)INSERT INTO common_code (type, code, name, desc, created_at, updated_at) VALUES ..

IT/DB 2026.01.26

[SQL] Postgresql에서 Oracle의 Merge into~ 구문 사용하기

오라클에서의 Merge into~ 구문처럼insert를 하고싶은데 이미 데이터가 있으면 update를 해야되는즉, insert와 update를 동시에 실행시켜야 하는 니즈가 생기기 마련  그러나 postgresql 에서는? Oracle의 Merge into~ 구문을 사용할 수 없다.대신 다른 방법이 존재한다. 원리는 간단하다.임시 테이블 + Returning * 구문을 활용하면 끝.심지어 insert/delete/update/select 원하는 순서로 동시 실행 가능하다.ex) 쿼리 한개로 ABC를 select를 하고 C를 delete하고 B만 update할 수가 있다 예시 쿼리1은 다음과 같다.sesert에서 특정 데이터 선택하고upsert에서 선택된 데이터만 특정컬럼 업데이트해주고 (Returning..

IT/DB 2024.06.27
728x90
반응형
LIST