🖥️ CS/DB 4

Redis의 기초 개념을 이해해보자

목차Redis는 안써봐서 모르겠어요RDBMS vs NoSQLMySQL vs Redis스키마확장성트랜잭션Redis의 특징디스크 X , 인메모리 O = 빠름싱글 스레드 고가용성 (automatic fail over)기타참고 자료1. Redis는 안써봐서 모르겠어요2024년 한 해 동안 개발자 친구들과 얘기하면서 지식을 공유할 때, 빈번하게 사용됐던 문장은 위의 소제목이 아닐까 싶습니다. 현업에서는 MySQL만을 사용하다보니, 개인적으로는 NoSQL에 대한 경험이 전무한 상황이었습니다.이로 인해 아래와 같은 대화가 나눠진 적이 있었습니다.🙋🏻‍♀️ 어드민에서는 DB 테이블에서 extraData라는 컬럼을 하나 만들어두고, 그 안에 json 형식으로 key - value를 저장하고 -> 데이터를 역직렬화..

🖥️ CS/DB 2025.02.11

복합 인덱스의 순서는 중요하다

목차작성 계기인덱스란?인덱스 컬럼 기준복합 인덱스의 순서는 중요하다예시 사례 - 4개의 복합 인덱스1번 인덱스만 타는 경우1번, 2번 인덱스를 타는 경우2번, 1번 인덱스를 타는 경우 (역방향)1번, 4번 인덱스를 타는 경우2번 ~ 4번 인덱스를 타는 경우결론참고 자료0. 작성 계기현업에서는 쿼리 작성 후 해당 쿼리가 적절한지에 대한 판단을 DBA분께 문의를 드립니다.만약 성능이 좋지 못한 쿼리라면 개선책을 제시해주시며, 개발자는 이를 따라 쿼리를 수정하게 됩니다.개발자가 DB에 대한 깊은 이해를 하지 못한 상황에서도 적절성에 대한 유효성을 체크해주시니 좋은 일이지만,이에 의존하여 가끔은 내가 짠 쿼리가 제대로 인덱스를 타는지 아닌지를 모르는 경우가 발생합니다.특히 업무가 바쁘거나, 생각보다 단순한 쿼리..

🖥️ CS/DB 2025.01.06

DB 데이터 동시성 이슈 해결법

목차작성 계기동시성 이슈의 원인해결책 (1) - 물리적 DB 1개 사용해결책 (2) - DB간의 동기화 (MQ)해결책 (3) - Kafka + 물리적 DB 1개 사용1. 작성 계기Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)의 강의를 듣고 인상 깊은 내용을 정리 중이다.현업에서는 Master DB 1대 Slave DB 1대로 레플리카구조로 이루어진 프로젝트가 대부분이다.만약 동일 서비스에 Master DB가 여러대일때의 상황을 고려해본 적이 별로 없다.(레플리카에 대한 설명은 클러스터링, 레플리카, 그리고 샤딩 게시글에서 확인해보자.)강의를 통해 학습했으니 내용을 정리해보자.2. 동시성 이슈의 원인해당 프로젝트에서는 USER SERVICE 에서 ORDER SERVICE API를 ..

🖥️ CS/DB 2024.11.13

View 테이블

목차뷰(View) 테이블이란?장점단점Slave DB와의 차이점현업에서 사용 사례1. 뷰(View) 테이블이란?실제 데이터를 저장하지 않고 DB에서 미리 정의한 쿼리의 결과를 저장해 놓은 가상 테이블일종의 재사용 가능한 쿼리데이터를 별도로 저장하지 않으면서, 조회 시 원본 테이블의 데이터를 기반으로 결과를 보여줌결국 실제 데이터는 원본 테이블에 저장되어 있고, 뷰는 그 데이터를 가공해서 보여줌 예) view 테이블 생성 예시 코드CREATE VIEW sales_department_view ASSELECT employee_id, name, departmentFROM employeesWHERE department = 'Sales';2. 장점재사용성 : 복잡한 쿼리를 쉽게 재사용 가능보안성 : 특정 열, 또는 ..

🖥️ CS/DB 2024.10.16