>  기사  >  데이터 베이스  >  mysql의 트랜잭션 및 저장 프로시저란 무엇입니까?

mysql의 트랜잭션 및 저장 프로시저란 무엇입니까?

青灯夜游
青灯夜游원래의
2022-06-20 11:02:592614검색

MySQL에서 트랜잭션은 일련의 데이터베이스 작업 명령을 포함하는 사용자 정의 데이터 작업 시퀀스입니다. 트랜잭션은 시스템 전체에 작업 요청을 제출하거나 취소합니다. 또는 둘 다 실행되지 않으므로 트랜잭션은 분할할 수 없는 논리적 작업 단위입니다. 저장 프로시저는 특정 기능을 수행하도록 설계된 SQL 문 집합입니다. 저장 프로시저는 데이터베이스에 생성되고 저장되는 프로그래밍 가능한 기능이며 일반적으로 SQL 문과 일부 특수 제어 구조로 구성됩니다.

mysql의 트랜잭션 및 저장 프로시저란 무엇입니까?

이 튜토리얼의 운영 환경: windows7 시스템, mysql8 버전, Dell G3 컴퓨터.

Transaction in mysql

데이터베이스 트랜잭션(Transaction)은 사용자가 정의한 데이터 연산 순서인 메커니즘으로, 일련의 데이터베이스 연산 명령어를 포함한다. 트랜잭션은 모든 명령 전체와 함께 시스템에 작업 요청을 제출하거나 취소합니다. 즉, 이 데이터베이스 명령 그룹은 실행되거나 실행되지 않으므로 트랜잭션은 분할할 수 없는 논리적 작업 단위입니다.

데이터베이스 시스템에서 동시 작업을 수행할 때 트랜잭션은 가장 작은 제어 단위로 사용되며, 이는 특히 여러 사용자가 동시에 운영하는 데이터베이스 시스템에 적합합니다. 예를 들어 항공사 예약 시스템, 은행, 보험 회사, 증권 거래 시스템 등이 있습니다.

MySQL 트랜잭션은 주로 대규모 작업과 복잡성이 높은 데이터를 처리하는 데 사용됩니다. 예를 들어 인사관리 시스템에서 사람을 삭제하면 그 사람의 기본 정보뿐만 아니라 우편함, 물품 등 그 사람과 관련된 정보까지 삭제해야 한다. 이렇게 함으로써 이들 데이터베이스 작업문은 트랜잭션을 구성합니다!

  • MySQL에서는 Innodb 데이터베이스 엔진을 사용하는 데이터베이스나 테이블만 트랜잭션을 지원합니다.

  • 트랜잭션 처리를 사용하여 데이터베이스의 무결성을 유지하고 SQL 문 일괄 처리가 모두 실행되거나 전혀 실행되지 않도록 할 수 있습니다.

  • 트랜잭션은 삽입, 업데이트 및 삭제 문을 관리하는 데 사용됩니다.

일반적으로 트랜잭션은 네 가지 조건(ACID)을 충족해야 합니다: 원자성(또는 불가분성), 일관성), 격리(독립성이라고도 함) 및 내구성(내구력).

  • 원자성: 트랜잭션의 모든 작업은 완료되거나 완료되지 않으며 중간 단계에서 끝나지 않습니다. 트랜잭션 실행 중 오류가 발생하면 트랜잭션이 실행되지 않았던 것처럼 트랜잭션이 시작되기 전 상태로 롤백됩니다.

  • 일관성: 트랜잭션이 시작되기 전과 트랜잭션이 끝난 후에도 데이터베이스의 무결성이 손상되지 않습니다. 이는 기록된 데이터가 데이터의 정확성과 연결을 포함하여 미리 설정된 모든 규칙을 완전히 준수해야 하며 후속 데이터베이스가 미리 결정된 작업을 자발적으로 완료할 수 있음을 의미합니다.

  • 격리: 데이터베이스는 여러 동시 트랜잭션이 동시에 데이터를 읽고, 쓰고, 수정할 수 있도록 허용합니다. 격리는 여러 트랜잭션이 동시에 실행될 때 교차 실행으로 인한 데이터 불일치를 방지할 수 있습니다. 트랜잭션 격리는 커밋되지 않은 읽기, 커밋된 읽기, 반복 가능한 읽기 및 직렬화 가능을 포함하여 다양한 수준으로 구분됩니다.

  • 지속성: 거래가 완료된 후 데이터 수정 사항은 영구적이며 시스템이 실패하더라도 손실되지 않습니다.

mysql의 저장 프로시저

저장 프로시저는 특정 기능을 완료하기 위해 데이터베이스 디렉터리에 저장된 SQL 문 집합입니다. 저장 프로시저를 사용하는 목적은 SQL 문과 함께 일반적이거나 복잡한 작업을 미리 작성하여 지정된 이름으로 저장하는 것입니다. 이 프로시저를 컴파일하고 최적화하여 데이터베이스 서버에 저장하므로 저장 프로시저라고 합니다. 향후 정의된 저장 프로시저와 동일한 서비스를 제공하기 위해 데이터베이스가 필요한 경우 "CALL 저장 프로시저 이름"만 호출하면 자동으로 완료됩니다.

데이터베이스를 운영하는데 흔히 사용되는 SQL 문은 먼저 컴파일한 후 실행해야 합니다. 저장 프로시저는 SQL 문을 실행하는 데 또 다른 접근 방식을 사용합니다.

저장 프로시저는 데이터베이스에 생성되고 저장되는 프로그래밍 가능한 함수입니다. 일반적으로 SQL 문과 일부 특수 제어 구조로 구성됩니다. 저장 프로시저는 다양한 애플리케이션이나 플랫폼에서 동일한 특정 기능을 수행하려는 경우 특히 적합합니다.

MySQL 5.0 버전은 이전에는 저장 프로시저를 지원하지 않아 MySQL 적용이 크게 줄었습니다. MySQL은 버전 5.0부터 저장 프로시저를 지원해 데이터베이스의 처리 속도를 향상시킬 뿐만 아니라 데이터베이스 프로그래밍의 유연성도 향상시킵니다. 저장 프로시저는 데이터베이스에서 데이터 변환, 데이터 마이그레이션에 사용할 수 있는 중요한 기능입니다. 및 프로덕션 보고서는 프로그래밍 언어와 유사합니다. 성공적으로 실행되면 언제든지 호출하여 지정된 기능 작업을 완료할 수 있습니다.

저장 프로시저를 사용하면 데이터베이스 액세스 효율성이 향상될 뿐만 아니라 데이터베이스 사용 보안도 향상됩니다.

호출자의 경우 저장 프로시저가 SQL 문을 캡슐화하므로 호출자는 논리 함수의 특정 구현 프로세스를 고려할 필요가 없습니다. 간단한 호출만으로 트리거, 기타 저장 프로시저 및 Java, Python, PHP 등과 같은 애플리케이션에서 호출할 수 있습니다.

MySQL 저장 프로시저의 장점

  • 일반적으로 저장 프로시저는 애플리케이션 성능을 향상시키는 데 도움이 됩니다. 저장 프로시저가 생성되면 컴파일되어 데이터베이스에 저장됩니다. 그러나 MySQL은 저장 프로시저를 약간 다르게 구현합니다. MySQL 저장 프로시저는 요청 시 컴파일됩니다. 저장 프로시저를 컴파일한 후 MySQL은 이를 캐시에 저장하고 각 연결에 대해 자체 저장 프로시저 캐시를 유지합니다. 애플리케이션이 단일 연결에서 저장 프로시저를 여러 번 사용하는 경우 컴파일된 버전을 사용하고, 그렇지 않으면 저장 프로시저가 쿼리처럼 작동합니다.

  • 저장 프로시저는 애플리케이션이 긴 SQL 문을 여러 개 보내는 대신 저장 프로시저의 이름과 매개 변수만 전송해야 하므로 애플리케이션과 데이터베이스 서버 간의 트래픽을 줄이는 데 도움이 됩니다.

  • 저장 프로시저는 재사용이 가능하고 모든 애플리케이션에 투명합니다. 저장 프로시저는 모든 애플리케이션에 데이터베이스 인터페이스를 노출하므로 개발자는 저장 프로시저에서 이미 지원되는 기능을 개발할 필요가 없습니다.

  • 저장 프로시저는 안전합니다. 데이터베이스 관리자는 기본 데이터베이스 테이블에 대한 권한을 제공하지 않고도 데이터베이스의 저장 프로시저에 액세스하는 응용 프로그램에 적절한 권한을 부여할 수 있습니다.

【관련 추천: mysql 비디오 튜토리얼

위 내용은 mysql의 트랜잭션 및 저장 프로시저란 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.