Computer >> 컴퓨터 >  >> 프로그램 작성 >> MySQL

저장 프로시저 내에서 수행되는 작업과 복제된 함수는 어떻게 됩니까?


실제로 저장 프로시저 및 기능에서 수행되는 표준 작업은 마스터 MySQL 서버에서 슬레이브 MySQL 서버로 복제됩니다. 마스터 MySQL 서버에서 일반 DDL 문을 통해 수행되는 저장 프로시저 및 기능 생성조차도 슬레이브 MySQL 서버로 복제됩니다. 이러한 방식으로 개체는 두 서버에 모두 존재하게 됩니다.

MySQL은 저장 프로시저 및 함수 내부에서 발생하는 각 DDL 이벤트를 기록하기 때문에 저장 프로시저 및 함수 내부에서 발생하는 작업이 복제됩니다. 이벤트를 기록한 후 슬레이브 MySQL 서버에 복제됩니다. 그러나 저장 프로시저를 실행하기 위한 실제 호출은 복제되지 않습니다. 다음은 CALL 프로시저가 실제로 마스터 MySQL 서버에 있기 때문에 복제되지 않는 예입니다.

예시

mysql> Delimiter //
mysql> CREATE PROCEDURE myproc()
    -> BEGIN
    -> DELETE FROM mytable LIMIT 1;
    -> END //

이제 마스터 MySQL 서버에서 이 절차를 호출하면 복제되지 않습니다.

mysql> Delimiter ;
mysql> CALL myproc();