본문 바로가기

MySQL3

[DB 8편] MySQL 복제 정리 목차는 DB 목차 에 있습니다. [DB 8편] MySQL 복제 정리 MySQL 복제 동작 방식 소스는 트래픽을 받아내는 서버를 의미하며, 레플리카는 복제 서버를 의미합니다. 아래 동작 방식은 비동기로 이루어집니다. (I/O 처리) 순서 소스에서 트래픽 (데이터 변경 요청) 이 들어오면 바이너리 로그에 이벤트를 기록합니다. 복제 서버 (레플리카) 는 소스 바이너리 로그에 접근해 릴레이 로그에 copy 합니다. 복제 서버 (레플리카) 는 릴레이 로그를 읽어서 데이터를 변경합니다. MySQL 복제 형식 명령문 기반 복제 로그에 저장할 때, SQL 명령문을 저장합니다. 레플리카는 릴레이 로그에 저장된 SQL 문을 실행합니다. 명령문 방식 장단점 명령문으로 저장하기에 로그 사이즈가 작습니다. 비결정적 쿼리 (실행.. 2022. 11. 24.
Mysql recursive query (재귀쿼리) 1. 소개 Mysql 은 오라클과 달리 재귀쿼리를 지원하는 것이 없다. 그렇기 때문에 function 이나 procedure 를 사용해야 한다. 아래 코드의 핵심은 임시테이블을 생성해서 값을 임시로 저장해서 활용하고 최종적으로 results 에 값을 쌓는 것을 목표로 한다. 임시테이블을 사용하기에 성능 이슈가 있기에 수차례 반복적으로 호출할 시에는 성능이슈를 고려해야한다. 임시테이블은 한 세션에서만 사용된다. 즉, 멀티쓰레드 환경에서 사용할 수 있다. (서로 다른 세션으로 접속한다면) 2. Code 2.1 Code Description 입력받은 id 를 조건으로 parent_id 를 가져온다. 가져온 parent_id 를 임시테이블에 저장 임시테이블에 저장된 부모의 parent_id 를 가져옴. 위 1~.. 2017. 12. 14.
Mysql 더미 데이터 만드는 쿼리 주의사항 : CREATE PROCEDURE ~ END 까지 커서로 전체 선택해서 Ctrl + Enter 눌러야 생성됨. DROP PROCEDURE IF EXISTS loopInsert CREATE PROCEDURE loopInsert() BEGIN DECLARE i INT DEFAULT 1; WHILE i <= 500 DO Insert into TABLE_NAME (ColumnA, ColumnB) VALUES(i, 컬럼 값); SET i = i + 1; END WHILE; END CALL loopInsert() 2017. 11. 24.