DB 4

SpringBoot + redis 프로젝트 생성 후 JMeter 성능 테스트 해보기

redis란?redis는 메모리 기반의 데이터베이스를 의미한다.기존 RDBMS의 경우 디스크 기반의 데이터베이스로 Disk I/O를 이용해 데이터에 대한 요청을 처리한다.RDBMS에서도 캐싱처리를 이용해서 메모리에 데이터를 올려 디스크에 직접 접근하지 않아도 메모리 기반 데이터를 이용할 수 있지만, 메모리 기반의 데이터베이스인 redis에 비해 메모리 용량이 제한적이고, Disk I/O에 의한 병목현상등이 발생할 수 있다는 점에서 한계를 지닌다. 기존에 SpringBoot 프로젝트에서 redis를 이용해 본 경험이 없어, 프로젝트를 생성 후 redis를 적용하고 기본적인 CRUD 작업을 하는 코드를 작성하고 이를 바탕으로 테스트 코드를 작성해 결과를 확인해보았다. 또한 JMeter를 이용해 부하테스트를 ..

DB 2024.11.20

PostgreSQL DB에서 테이블 Vacuum 처리

회사에서 postgreSQL DB를 사용한 프로젝트 개발 중 특정 테이블에서 데이터를 가져올 때 속도저하 문제가 발생하는 경우가 있었다.DB를 확인해 본 결과 테이블의 용량이 증가해 있음을 확인할 수 있었다.해당 테이블은 수정/삭제가 빈번히 발생하는 테이블이었는데, 결국 원인은 postgreSQL에서 MVCC(다중 버전 동시성 제어)를 하며 생성된 데드튜플에 따른 디스크 I/O에서의 성능저하였다. 해당 DB에는 AutoVacuum 설정이 되어있지 않아 수동으로 vacuum 처리를 하여 용량을 확보해 성능을 개선한 경험이 있는데, 그 과정에서 운영 DB에 직접 바로 vacuum 처리를 하기에는 데이터의 손실위험이 있어 임의로 테이블을 만들어 실습을 진행한 경험이 있다.  실행계획은 아래와 같이 계획했었다...

DB 2024.11.11

[DB]데이터베이스 용어 시스템 카탈로그란??

우선 알아야 할 개념들 릴레이션: 관계형 데이터베이스에서 정보를 구분하여 저장하는 기본 단위. DB 테이블을 의미한다고 보면된다. : ERD 에서의 네모칸 하나하나가 모두 릴레이션이라 생각하면 된다. ERD(Entity Relationship Diagram) 릴레이션 특징 1. 한 릴레이션에는 똑같은 튜플이 포함될 수 없고, 릴레이션에 포함된 튜플들은 모두 상이하다. 2. 한 릴레이션 내 튜플간에는 순서가 없다. 3. 튜프들의 삽입, 삭제 등의 작업으로 인해 릴레이션은 시간에 따라 변한다. 4. 릴레이션 스키마를 구성하는 속성들 간의 순서는 중요치 않다. 5. 속성의 명칭은 유일해야 하나 속성을 구성하는 값은 동일한 값이 있을 수 있다. 6. 릴레이션을 구성하는 튜플을 유일하게 식별하기 위해 속성들의 부..

DB 2022.09.01