본문 바로가기
반응형

CS/Database9

Replica 싱크 불일치 이슈 Replica 복제 지연 문제 복제 지연 발생 이슈 원인: Amazon RDS for MySQL은 비동기 복제를 사용하기 때문에 일부 DB 변경 사항이 반영되지 않는 경우가 있습니다 seconds_behind_master: master DB와 slave DB사이에 현재 타임스탬프 간의 차이가 표시하는 것입니다 MySQL 복제를 위한 Thread master slave cf)SHOW PROCESSLIST 명령어를 통해서 내부 process list를 볼 수 있습니다 Binlog Dump Thread replica에 binary log 정보를 전송하는 역할을 담당합니다 현재 master process list 사진에서 ID 7에 해당합니다 Replica IO Thread start slave query가 s.. 2022. 4. 7.
RDB Semi Join을 이용한 성능 최적화 Table 구조 CREATE TABLE `food` ( `food_id` bigint NOT NULL AUTO_INCREMENT, `create_date` datetime(6) DEFAULT NULL, `last_modified_date` datetime(6) DEFAULT NULL, `food_status` varchar(255) NOT NULL, `food_title` varchar(255) NOT NULL, `number_of_likes` bigint NOT NULL, `price` int NOT NULL, `review_msg` varchar(255) DEFAULT NULL, `writer_nickname` varchar(50) DEFAULT NULL, `category_id` bigint DEF.. 2021. 12. 12.
RDB Index 성능 이슈발생 원인 대부분 성능 이슈는 index 선언과 잘못된 query문으로 인해 slow 이슈가 발생하게됩니다. 부수적으로 replication과 리눅스 connection개수와 같은 여러 방식으로 성능 이슈를 해결하는 경우도있지만 애플리케이션에서 index와 slow 쿼리를 빠르게 찾는게 중요합니다. 간단한 용어 정리 카디널리티: 겹치지 않는 row의 수 선택도 카디널리티를 전체 조회된 데이터 개수로 나눈것 : 카디널리티/전체row수 1에 근접할 수록 좋습니다. 분포도: 특정 컬럼에 대해서 전체 건수 대비 특정 값이 차지하는 비율(만약 Y/N이고 100개중 50/50비율이면 50%입니다) Index 정의 Database의 데이터를 빠르게 찾기 위해서 사용하는 테이터 구조 MySQL innoDB에서.. 2021. 12. 9.
RDB Join 방식 Join 두 테이블을 합치는 과정 대부분 정규화를 거치게 되면 1:N(OneToMany/ManyToOne), 1:1(OneToOne)관계를 가지게 됩니다. 이런 연관관계를 DB측에서는 relation관계라고 표현합니다. Join 방식 Nested Loop방식 mysql이 많이 사용하는 방식 8.0.18버전 이전에는 mysql 의 유일한 join 방식입니다 먼저 처리될 table(drivinig table)의 row수가 작을 수록 성능적인 이점을 가져갑니다 이유 nested loop에서는 index가 없을 경우 2중 for문 처럼 조회 하게 됩니다. 만약 driving table의 row가 커질 수록 outer table의 전체 조회 횟수가 증가 하기 때문입니다. index가 있을 경우 random acc.. 2021. 12. 9.
반응형