>  기사  >  데이터 베이스  >  mysql 저장 프로시저의 단점은 무엇입니까?

mysql 저장 프로시저의 단점은 무엇입니까?

青灯夜游
青灯夜游원래의
2022-04-12 16:54:042872검색

mysql 저장 프로시저의 단점: 1. 저장 프로시저의 구조로 인해 복잡한 비즈니스 로직이 포함된 저장 프로시저를 개발하기가 더 어렵습니다. 2. 저장 프로시저를 디버깅하기가 어렵습니다. 3. 저장 프로시저를 개발하고 유지 관리하기가 쉽지 않습니다. 4. 저장 프로시저는 애플리케이션을 데이터베이스에 바인딩하므로 저장 프로시저를 사용하여 비즈니스 로직을 캡슐화하면 애플리케이션의 이식성이 제한됩니다.

mysql 저장 프로시저의 단점은 무엇입니까?

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

저장 프로시저 소개:

저장 프로시저(저장 프로시저)는 특정 기능을 완료하기 위한 SQL 문 집합으로, 컴파일되어 데이터베이스에 저장됩니다. 사용자는 이름을 지정하고 매개변수(저장 프로시저에 매개변수가 있는 경우)를 제공하여 저장 프로시저를 실행합니다.

1. 저장 프로시저는 생성될 때만 컴파일됩니다. 일반적으로 SQL 문은 실행될 때마다 한 번씩 컴파일되므로 저장 프로시저를 사용하면 성능이 향상될 수 있습니다. 데이터베이스의 실행 속도.

2. 데이터베이스에서 복잡한 작업(예: 여러 테이블에 대한 업데이트, 삽입, 선택, 삭제)을 수행할 때 이 복잡한 작업은 저장 프로시저에 캡슐화되어 데이터베이스에서 제공하는 트랜잭션 처리와 함께 사용될 수 있습니다.

3. 저장 프로시저를 재사용할 수 있어 데이터베이스 개발자의 작업량을 줄일 수 있습니다.

4. 높은 보안으로 특정 사용자만 지정된 저장 프로세스를 사용할 수 있는 권한을 갖도록 설정할 수 있습니다.

MySQL 저장 프로시저의 장점과 단점

MySQL 저장 프로시저의 장점

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

  • 저장 프로시저는 애플리케이션이 여러 개의 긴 SQL 문을 보낼 필요가 없고 저장 프로시저의 이름과 매개 변수만 보내면 되므로 애플리케이션과 데이터베이스 서버 간의 트래픽을 줄이는 데 도움이 됩니다.

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

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

이러한 장점 외에도 저장 프로시저에는 데이터베이스에서 사용하기 전에 알아두어야 할 고유한 단점이 있습니다.

MySQL 저장 프로시저의 단점

  • 많은 저장 프로시저를 사용하는 경우 이러한 저장 프로시저를 사용하는 각 연결의 메모리 사용량이 크게 늘어납니다. 또한 저장 프로시저에서 많은 논리 작업을 과도하게 사용하면 데이터베이스 서버가 논리 작업용으로 설계되지 않았기 때문에 CPU 사용량도 증가합니다.

  • 저장 프로시저를 구성하면 복잡한 비즈니스 로직이 포함된 저장 프로시저를 개발하기가 더 어려워집니다.

  • 저장 프로시저를 디버그하는 것은 어렵습니다. 소수의 데이터베이스 관리 시스템에서만 저장 프로시저를 디버깅할 수 있습니다. 불행하게도 MySQL은 저장 프로시저를 디버깅하는 기능을 제공하지 않습니다.

  • 저장 프로시저를 개발하고 유지 관리하는 것은 쉽지 않습니다.

  • 낮은 이식성: 저장 프로시저가 애플리케이션을 데이터베이스에 바인딩하므로 저장 프로시저를 사용하여 비즈니스 로직을 캡슐화하면 애플리케이션의 이식성이 제한됩니다.

  • 재컴파일 문제, 백엔드 코드가 실행되기 전에 컴파일되기 때문에 참조 관계가 있는 개체가 변경되면 영향을 받는 저장 프로시저 및 패키지를 다시 컴파일해야 합니다(단, 자동으로 컴파일되도록 실행하도록 설정할 수도 있음). .

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

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

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