본문 바로가기

다른 DBMS/MySQL&MariaDB51

binlog(Binary log) BINLOG? 서버 내에서 발생되는 모든 변경내역이 기록되는 파일입니다. DML,DDL의 모든 명령문이 기록되며 데이터는 "event"형태로 저장되어 있습니다. 각 명령문이 데이터를 업데이트하는 소비시간 정보를 가지고 있습니다. select or show와 같이 수정하지 않는 명령문은 기록되지 않습니다. 시점복구(PIT)와 리플리케이션에 필수 요소입니다. 활성화 확인법 아래의 명령어를 통해 해당 DB의 bin_log 상태를 ON/OFF로 확인할 수 있습니다. (mysql8.0.22 기준으로 default로 ON상태입니다.) mysql> show variables like 'log_bin'; +---------------+-------+ | Variable_name | Value | +-----------.. 2020. 12. 15.
database와 USER Oracle은 스키마와 유저가 동일한 의미로 사용됩니다. USER가 스키마인 것이지요. 하지만 Mysql은 오라클의 스키마 역할을 하는 database가 존재하고(우리가 흔히 알고 쓰는 database와 다르게 Mysql에서 사용하는 스키마와 비슷한 개념), 유저를 따로 생성한 후 해당 database에 대한 권한을 부여하여 사용하게 됩니다. 즉, Mysql은 USER와 Database가 분리되있는 개념입니다. 현재 DB의 database 확인 mysql> show databases; +--------------------+ | Database | +--------------------+ | classicmodels | | information_schema | | mysql | | performance_.. 2020. 12. 14.
DETERMINISTIC , NOT DETERMINISTIC 함수나 프로시저 같은 Object 생성시 사용할 수 있는 옵션입니다. default값은 NOT DETERMINISTIC입니다. 아무것도 입력하지 않으면 자동으로 NOT DETERMINISTIC이 설정됩니다. 동일한 입력 매개 변수에 대해 항상 동일한 결과를 생성하는 경우, DETERMINISTIC로 간주되고 그렇지 않으면 NOT DETERMINISTIC으로 간주됩니다. MySQL의 Stored procedure나 Function이 NOT DETERMINISTIC으로 정의되면 Mysql은 이 Stored routine의 결과값이 시시각각 달라진다고 가정하고, 비교가 실행되는 레코드마다 이 Stored routine을 매번 새로 호출해서 비교를 실행하게 됩니다. 즉, 함수 호출의 결과값이 Cache되지 않고.. 2020. 12. 11.
Function 생성(ERROR 1046, ERROR 1418 ERROR 1419) 함수 및 프로시저 확인 쿼리 --함수 확인 show function status where db = 'test'; Empty set (0.00 sec) --프로시저 확인 show procedure status where db = 'test'; Empty set (0.00 sec) 함수 예제 기본코드 --Function 예제 기본코드 -- 상수값 12을 반환하는 함수 DELIMITER || CREATE FUNCTION functionname() RETURNS INT BEGIN RETURN 12; END; || DELIMITER ; --입력값에 +2를 하는 함수 mysql> DELIMITER $$ mysql> CREATE FUNCTION test.add_2 ( my_arg INT ) -> RETURNS IN.. 2020. 12. 10.