목록Database (14)
우당탕탕
Elasticsearch 검색 기능을 도입하려고 하니, 생각보다 세팅부터 쿼리 작성까지 삽질이 꽤 많았어요. 특히 처음부터 무턱대고 문서를 읽기 시작했는데 체계가 없으니 더 혼란스럽더라고요. 그래서 제가 겪은 시행착오와 함께, 단계별로 어떤 절차를 밟아야 하는지 정리해봤습니다.이 글에서는 설치부터 클러스터 구성, 인덱스 생성, 그리고 쿼리 작성 및 최적화 과정까지 실제 실행 화면과 명령어 위주로 자세히 다뤄서, 처음 Elasticsearch 도입하는 분들이 이 글 하나면 혼란 없이 진행할 수 있도록 했어요.개발 환경 / 버전 정보저는 Elasticsearch 8.7.0 버전을 로컬 서버와 테스트용 AWS 인스턴스에 설치해서 작업했어요. OS는 Ubuntu 22.04 LTS를 사용했고, 데이터 검색과 분석..
MySQL 8.0으로 업그레이드할 때 쿼리가 갑자기 안 돌아가서 정말 고생했어요. 기존에는 아무 문제 없던 게 어느 순간 에러만 나고, 당황스럽더라고요. 이번에 직접 겪으면서 어떤 부분이 문제였는지, 그리고 어떻게 고쳤는지 정리해 봤어요.이 글에서는 MySQL 8.0 업그레이드 이후 깨진 쿼리 유형들을 사례별로 다루고, 제가 직접 시도해본 해결법과 흔히들 하는 방법들을 비교해 드릴게요. 실제 실행 결과도 포함해서, 비슷한 문제 겪으실 분들께 정확한 도움이 될 겁니다.개발 환경 / 버전 정보제가 사용한 환경은 MySQL 5.7에서 MySQL 8.0.33으로 업그레이드했습니다. OS는 Ubuntu 22.04이고, 테스트는 Workbench 8.0과 CLI에서 했어요.업그레이드 후 깨진 쿼리 유형과 해결법 비..
저도 처음에 PostgreSQL의 JSONB 컬럼을 쓴다고 했을 때는 “이게 과연 빠르고 효율적일까?” 하는 의문이 많았거든요. 실제 프로젝트에 도입해서 쿼리도 여러 번 최적화해보고, 비용과 성능 변화를 직접 체감해보면서 글을 쓰게 됐어요.이 글에서는 JSONB 컬럼을 사용하면서 겪은 장단점, 그리고 숫자 데이터를 비교하거나 계산할 때 빠른 쿼리 작성법과 비용 차이를 중심으로 실제 실행 결과까지 자세히 소개하려 합니다. 표로 비용과 성능 차이를 명확히 보여드릴게요.개발 환경 / 버전 정보우선, 제가 직접 테스트한 환경 정보인데요. 혹시 따라 해보실 때 참고하세요.PostgreSQL 15.2데이터 크기: 약 1백만 건, JSONB 컬럼 내 숫자 키 5개 포함서버 사양: 8코어 CPU, 32GB RAM실행 ..
실제로 MySQL 쿼리 최적화를 하다 보면 인덱스가 제대로 작동하는지, 실행계획을 올바르게 읽는지가 늘 헷갈렸어요. 특히 2026년부터 달라진 MySQL의 인덱스 동작 방식 때문에 더 혼란스러웠는데, 이것 때문에 쿼리 성능이 확 달라지더라고요.이 글에서는 최신 2026년형 MySQL에서 인덱스를 제대로 활용하는 법과 실행계획(EXPLAIN) 보는 방법을 실제 경험을 기반으로 차근차근 알려드릴게요. 작년과 달라진 점 위주로 설명하니, 최신 환경에서 쿼리 최적화 고민인 분들께 딱일 거예요.개발 환경 / 버전 정보이번 글은 MySQL 8.1.0(2026년 최신버전) 기준으로 작성했어요. 기존 8.0 버전 대비 인덱스가 동작하는 내부 메커니즘에 중요한 변화가 생겨서, 실행계획도 조금 다르게 표시됩니다. 개발 환..
저도 처음엔 ‘Redis pub/sub’가 뭔지, 이걸 메시지 큐로 쓰는 게 도대체 어떤 의미인지 전혀 몰랐어요. 근데 실제로 조금씩 코드도 짜보고, 실행 결과도 보면서 확실히 이해가 되더라고요. 이 과정에서 겪은 시행착오와 팁들을 정리해봤습니다.이 글에서는 Redis pub/sub의 기본 개념부터, 직접 메시지 큐로 구현해본 경험담, 실행 결과 분석, 그리고 초보자가 흔히 헷갈리는 부분까지 한 번에 정리해 드릴게요.개발 환경 / 버전 정보실습에 사용한 Redis 버전은 Redis 7.0이며, 클라이언트로는 Node.js v18.15.0를 활용했습니다. 메시지 큐 역할을 해보기 위해 redis 공식 패키지를 사용했어요.Redis pub/sub가 뭔지, 메시지 큐랑 왜 헷갈리는지사실 이 부분이 가장 헷갈렸..
저도 직접 MySQL 트랜잭션 격리수준을 다루다가 의외로 삽질이 많았는데요. 특히 2026년 들어서 격리수준 관련 기본 동작 방식이 조금 바뀌어서 기존처럼 처리하다가 문제가 생기는 경험을 했어요. 이거 때문에 데이터 무결성이나 성능 쪽에서 엉뚱한 결과가 나오는 바람에 꽤 당황했거든요.그래서 이번 글에서는 2026년 현재 MySQL 트랜잭션 격리수준에서 무엇이 달라졌는지, 그리고 제가 직접 겪은 실수 사례들과 쿼리, 실행 결과들을 차근차근 보여드릴게요. 이거 읽고 나면 여러분도 동일한 함정을 피할 수 있을 거예요.개발 환경 / 버전 정보2026년 최신 MySQL 서버 MySQL 8.1.0 버전을 사용했고, 클라이언트는 MySQL Shell 8.1이에요. 특히 이번 버전부터 트랜잭션 격리수준 관련해 몇 가지..
