H2 는 자바로 작성된 RDBMS이다. 자바에서 간단한 테스트 등을 하기 위해 만들어졌다. 주로 스프링 부트와 같은 자바로 개발하는 프레임워크에서 사용한다. Mode In-Memory Mode: 메모리에 디비를 올리는 방식이다. 휘발성이기 때문에 간단한 테스트 등에 사용된다. Embedded Mode: 데이터를 PC에 저장하는 방식이다. 데이터가 비휘발성이기 때문에 개발 초기 단계에 사용된다. Server Mode: 서버를 구축해서 사용하는 방식이다. 테스트 서버로 사용된다. 최근 스프링 부트와 같은 자바를 사용하는 프레임워크에서 H2를 사용할 때 H2를 자동으로 설치해주는 기능이 1.4.x 버전부터 없어졌다. 그래서 H2를 설치하는 방법을 다룬다. 설치 아래 링크로 들어가 가장 최신의 버전을 다운받는다..
Database
PostgreSQL에선 카탈로그도 시스템 테이블로 구성되어서 사용자도 SQL을 통해 카탈로그를 조회할 수 있다. 해당 카탈로그 테이블의 이름은 pg_catalog 이다. 이 카탈로그 안의 pg_stat_activity 테이블은 세션 정보, 세션 PID, 세션 설명 등의 정보를 담고 있다. 해당 테이블의 로우의 갯수는 커넥션의 갯수이며 제공된 PID를 이용해 세션을 종료할 수 있다. pg_stat_activity 테이블 조회 SELECT * from pg_catalog.pg_stat_activity; 세션의 쿼리 종료 SELECT pg_cancel_backend(PID); 세션 종료 SELECT pg_terminate_backend(PID);
PostgreSQL의 Docker 이미지에선 처음 디비를 빌드할 때 /docker-entrypoint-initdb.d/init.sql 위 경로의 sql 스크립트를 실행한다. .env 파일은 아래와 같다. POSTGRES_USER=postgres POSTGRES_PASSWORD=postgres docker-compose.yaml 파일은 아래와 같다. postgresql-default: image: postgres:latest container_name: postgres-default ports: - "5432:5432" env_file: - .env volumes: - ./postgres/default/data:/var/lib/postgresql/data - ./postgres/default/init.sq..
해당 쿼리는 매우 위험하므로 주의해서 사용해야 한다. curruent_schemas() 함수로 가져온 모든 테이블 명을 프로시저에서 반복문을 이용해 drop table if exists 쿼리로 삭제한다. DO $$ DECLARE r RECORD; BEGIN -- if the schema you operate on is not "current", you will want to -- replace current_schema() in query with 'schematodeletetablesfrom' -- *and* update the generate 'DROP...' accordingly. FOR r IN (SELECT tablename FROM pg_tables WHERE schemaname = curre..
항목 주소 공지사항 알림 상품 카테고리 후기 광고 채팅 파일 신고 유저 로그 직접 제작한 ERD로써 저작권은 나에게 있으므로 복붙해서 써도 상관 없다. 지속적으로 작성 중에 있어서 수정될 수 있고 항상 정상 작동 할 지는 불분명하다. 회원이 중심이 되도록 만들어서 그런지 스노우 플레이크의 형태를 띈다. 그런데 이러면 수평적 확장이 힘들어 보일 수 있는데 스노우 플레이크 형태이므로 수평적으로 확장될 필요는 없다. 각 서비스의 경계를 명확하게 표기 해주기만 하면 문제 없이 모든 방향으로 확장해 나갈 수 있다. 화질이 깨지므로 자세하게 보고 싶다면 아래 erdcloud의 링크를 참고 https://www.erdcloud.com/d/98H5gmB6imWXe4ecc 중고거래_khw 회원을 가장 왼쪽에 두고 각 구..
출처 주문 기록에 대해서 수십만건의 많은 데이터가 발행 돼 기존 기록 때문에 조회하는데 시간이 너무 많이 소요 돼 성능을 최적화 하는 방법을 찾는 중 아래와 같이 유용한 글을 읽고 퍼왔다. https://jaimemin.tistory.com/1913 [PostgreSQL] 월별로 DB 파티셔닝 예제 개요 제가 담당하고 있는 파트에서 매일 몇 만 건씩 데이터가 쌓이는 DB가 있었습니다. DB에 너무 많은 데이터들이 쌓일 경우 조회 성능이 떨어질 수 있으므로 월별 DB 파티셔닝을 진행했고 진행 jaimemin.tistory.com 개요 제가 담당하고 있는 파트에서 매일 몇 만 건씩 데이터가 쌓이는 DB가 있었습니다. DB에 너무 많은 데이터들이 쌓일 경우 조회 성능이 떨어질 수 있으므로 월별 DB 파티셔닝을..