>데이터 베이스 >MySQL 튜토리얼 >MySQL 저장 프로시저 및 트랜잭션에 대한 간략한 소개

MySQL 저장 프로시저 및 트랜잭션에 대한 간략한 소개

小云云
小云云원래의
2017-11-22 10:42:172045검색

저장 프로시저는 들어오는 매개 변수에 따라(또는 그렇지 않음) 간단한 호출을 통해
단일 SQL 문보다 더 복잡한 기능을 완료하는 일련의 SQL 문입니다. .다시 사용하면 다시 컴파일할 필요가 없습니다. 주로 저장 프로세스를 제어합니다.
트랜잭션은 전체적으로 일련의 데이터 변경 작업입니다. 트랜잭션에 포함된 작업이 실패하거나 사용자에 의해 중단되면 사용자는 트랜잭션 본문의 모든 작업 실행 취소를 제어하고 트랜잭션이 시작되기 전 상태로 돌아갈 수 있습니다.
거래의 작업은 전체적으로 완료되거나 전혀 완료되지 않은 전체 작업입니다. 이는 데이터 무결성을 보장합니다.
Mysql에서 MyISAM 스토리지 엔진은 트랜잭션을 지원하지 않지만 InnoDB는 지원합니다.
둘 다 데이터베이스에서 매우 중요한 지식입니다.

저장 프로시저:

장점:

1. 특히 더 복잡한 로직의 경우 네트워크 트래픽 소비를 줄여줍니다. 또 다른 중요한 점은 저장 프로시저가 생성될 때만 컴파일된다는 것입니다. 일반적으로 SQL은 저장 프로시저가 실행될 때마다 다시 컴파일할 필요가 없습니다. 문은 실행될 때마다 컴파일되므로 저장 프로시저를 사용하면 데이터베이스 실행 속도를 향상시킬 수 있습니다. .

2. 업무 효율성을 향상시킵니다. 프로그램 작성은 간단합니다. 저장 프로시저 호출 클래스를 사용하면 저장 프로시저를 호출하는 데 1~2줄의 코드만 필요합니다.

3. 표준화된 프로그램 설계, 업그레이드 및 유지 관리가 쉽습니다.

4. 시스템 보안을 개선합니다. 특정 사용자만 지정된 저장 프로시저를 사용할 수 있는 권한을 갖도록 설정할 수 있습니다.

데이터 양이 적거나 금전적 관련이 없는 프로젝트는 저장 프로시저 없이도 정상적으로 운영될 수 있습니다. mysql의 저장 프로시저는 아직 실제로 테스트되지 않았습니다. 공식적인 프로젝트라면 SQL Server나 Oracle의 저장 프로시저를 사용하는 것이 좋습니다. 데이터를 다루는 경우 프로세스는 프로그램보다 훨씬 빠릅니다.

단점:

프로그램 기능의 일부가 데이터베이스로 이동하여 CVM 3계층 구조 설계를 파괴합니다.

트랜잭션:

트랜잭션에 저장 프로시저가 있을 수도 있습니다.

저장 프로시저를 사용하는 것이 적절한 때는 언제인가요?

1. 여러 테이블을 동시에 처리하는 비즈니스에서는 저장 프로시저를 사용하는 것이 더 적합합니다.

2. 일부 보고서 처리와 같은 복잡한 데이터 처리에는 저장 프로시저를 사용합니다.

3. 여러 조건과 여러 테이블을 결합하여 페이징 처리를 수행합니다.

언제 거래를 사용하는 것이 적절한가요?

트랜잭션을 사용할 때마다 일정 금액의 오버헤드가 발생합니다. 또한 트랜잭션으로 인해 일부 테이블 행이 잠길 수 있습니다. 따라서 불필요한 트랜잭션은 성능 손실을 초래합니다. 여기에는 규칙이 있습니다. 작업에 필요할 때만 트랜잭션을 사용하세요. 예를 들어 데이터베이스에서 일부 레코드를 쿼리하거나 단일 쿼리를 실행하는 경우 선언이 이미 암시적 트랜잭션에 캡슐화되어 있으므로 대부분의 경우 명시적 트랜잭션이 필요하지 않습니다. 그러나 앞서 언급했듯이 트랜잭션이 실제로 작업 속도를 높일 수 있기 때문에 여러 문을 업데이트할 때 매우 중요합니다. 마찬가지로, 몇 밀리초를 절약하는 것과 데이터 무결성을 위태롭게 하는 것 사이에서 선택이 있는 경우 올바른 대답은 데이터를 깨끗하게 유지하고 밀리초에 대해 걱정하지 않는 것입니다.

또한 트랜잭션을 사용하기 전에 주의해야 할 점은 트랜잭션을 최대한 짧게 유지하는 것입니다. 명령문이 반환된 데이터에 의존하지 않는 한 트랜잭션 내에서 SELECT를 사용하여 데이터를 반환하지 마십시오. SELECT 문을 사용하는 경우 필요한 행만 선택하여 가능한 최고의 성능을 유지하면서 너무 많은 리소스를 잠그지 마십시오. 구조적 단어 순서의 경우 트랜잭션에서 모든 SELECT 문을 제거합니다. 이는 처리 중에 트랜잭션이 모든 작업 데이터 행을 잠그기 때문에 수행되며, 이는 다른 동시 SQL 문의 실행에 영향을 미칩니다.

위 내용은 MySQL 저장 프로시저와 사물의 차이점입니다. 모든 분들께 도움이 되길 바랍니다.

관련 권장 사항:

스토리지 프로세스에 대한 자세한 소개

mysql 스토리지 프로세스를 사용하는 이유는 무엇입니까? mysql 저장 프로시저 소개

서로 다른 데이터베이스 테이블을 동시에 작동하는지, 지원하는지, mysql 솔루션

위 내용은 MySQL 저장 프로시저 및 트랜잭션에 대한 간략한 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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