insert 등의 작업을 수행할 때 mysql이 커밋해야 하는지 여부는 스토리지 엔진에 따라 다릅니다. myisam과 같이 트랜잭션을 지원하지 않는 엔진인 경우 커밋 여부가 유효하지 않습니다.
추천 과정: MySQL 튜토리얼.
innodb와 같은 트랜잭션을 지원하는 엔진인 경우 해당 트랜잭션이 자동 트랜잭션 제출(예: 커밋)을 지원하는지 알아야 합니다.
데이터베이스가 자동으로 커밋되는지 확인하려면 mysql> '%autocommit%' ; 확인하려면 OFF인 경우 자동으로 커밋되지 않으며 수동 커밋 작업이 필요합니다(명령줄에서 직접 "커밋;" 명령을 사용할 수 있음). 그렇지 않으면 자동으로 커밋됩니다.
제출된 데이터에는 명시적 제출, 암시적 제출, 자동 제출의 세 가지 유형이 있습니다.
이 세 가지 유형은 아래에 설명되어 있습니다.
Explicit submit
COMMIT 명령을 사용하여 직접 작성한 제출은 명시적 제출입니다.
암시적 제출
SQL 명령을 사용하여 간접적으로 완료된 제출은 암시적 제출입니다. 해당 명령은
ALTER, AUDIT, COMMENT, CONNECT, CREATE, DISCONNECT, DROP, EXIT, GRANT, NOAUDIT, QUIT, REVOKE, RENAME입니다.
자동 제출
AUTOCOMMIT을 ON으로 설정하면 삽입, 수정, 삭제 문이 실행된 후
시스템이 자동으로 제출하는 것, 즉 자동 제출을 수행합니다. 형식은 다음과 같습니다. SQL>SET AUTOCOMMIT ON
COMMIT / ROLLBACK 이 두 명령을 사용할 때는 주의하세요. COMMIT/ROLLBACK은 DML 문(INSERT/DELETE/UPDATE/SELECT)을 실행한 후에 사용됩니다. DML 문이 실행된 후 처리된 데이터는 롤백 세그먼트(SELECT 문 제외)에 배치되어 사용자가 커밋(COMMIT) 또는 롤백(ROLLBACK)을 수행할 때까지 대기합니다. 롤백 세그먼트에 배치됩니다. 세그먼트의 데이터가 삭제됩니다. (SELECT 문 실행 후 해당 데이터는 공유 풀에 저장된다. 동일한 데이터를 다른 사람에게 쿼리하도록 제공할 때, 데이터베이스에서 추출할 필요 없이 바로 공유 풀에서 추출되므로 데이터 속도가 향상된다. 쿼리.)
모든 DML 문은 모두 명시적으로 제출해야 합니다. 즉, DML 문 실행 후 COMMIT를 실행해야 합니다. DDL 문과 같은 다른 것들은 암시적으로 제출됩니다. 즉, DML이 아닌 문을 실행한 후 데이터베이스는 이미 CREATE TABLE과 같은 암시적 커밋을 수행했습니다. 스크립트를 실행한 후 테이블이 생성되었으므로 더 이상 명시적 커밋을 수행할 필요가 없습니다.
위 내용은 MySQL은 커밋해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!