본문 바로가기

💻 개발 이야기/Database3

[Redis] 디버깅 시 MONITOR 명령을 조심하세요 안녕하세요. 여러분은 Redis를 자주 사용하시나요? 아마 대부분 사용해 보셨거나 사용 예정이실 겁니다. 😏 Redis는 굉장히 빠르며 가장 인기있는 키-값 데이터베이스입니다. 이번에는 Redis의 MONITOR 명령을 조심해서 사용해야 하는 이유에 대해 소개하겠습니다. 요약 Redis의 MONITOR 명령으로 쿼리 패턴과 빈도를 분석할 수 있다. MONITOR 명령을 사용하면 50% 이상의 성능 감소가 발생할 수 있다. 꼭 필요하다면 최소한의 시간만큼 사용하거나, 비-운영 환경에서 재현하거나, 외부 로깅 도구를 사용한다. 이 글에서 얻을 수 있는 것 Redis MONITOR 명령이 무엇이고 어떻게 사용하는지 알 수 있다. MONITOR 명령 사용 시 성능이 느려지는 것을 확인하고 느려지는 원인을 알 수.. 2024. 2. 4.
[MongoDB] Dynamic field name(동적 필드명)을 꼭 사용해야 하나요? 개요 최근 Dynamic field name(이하 동적 필드명)을 사용하는 데이터베이스에서 많은 쿼리를 실행해야 하는 상황이 있었는데, 굉장히 불편하고 느렸던 경험이 있어서 공유하고자 글을 작성합니다. NoSQL과 설계 방법부터 차근차근 얘기해 보겠습니다. NoSQL 사용 목적 데이터베이스는 전통적으로 2개의 패러다임을 가지고 있습니다. MySQL과 같은 관계형 데이터베이스와 MongoDB 같은 NoSQL 데이터베이스가 있습니다. NoSQL 데이터베이스는 특히 대량의 데이터와 비정형 데이터를 처리할 때 확장성, 유연성, 고성능을 제공하도록 설계됐다는 특징이 있습니다. 스키마가 없기 때문에 스키마 설계에 큰 시간을 들이지 않을 수 있으며, 다양한 형식의 데이터를 처리할 수 있으므로 웹 애플리케이션, 실시간.. 2023. 12. 24.
[PostgreSQL] 운영 중인 테이블에 인덱스 생성하기 안녕하세요. 황진성입니다. 오늘은 운영 중인 데이터베이스에 인덱스를 생성하는 방법에 대해 알아보겠습니다. 그냥 만들면 되는 거 아냐? 테이블에 인덱스를 생성하면, 인덱스를 구성하는 동안 테이블에 Lock이 걸리게 됩니다. 운영 중인 테이블에 인덱스를 생성하면 인덱스가 생성되는 동안 서비스가 중지될 수도 있습니다. 따라서 인덱스를 생성한다면 신중하게 판단해야 합니다. 일반적으로 운영 중인 테이블에 인덱스를 생성한다면 아래와 같이 생성합니다. 이해를 위해 Pseudo code로 작성했으며, DBMS Vender에 따라 문법이 조금씩 다를 수 있습니다. -- 1. 기존 테이블과 동일한 구조, 데이터를 가진 새로운 테이블을 생성한다. CREATE TABLE new_table_name AS ( SELECT * F.. 2023. 4. 12.