20.2 스토어드 루틴 (프로시저 및 함수)의 사용
스토어드 루틴 (프로 시저 및 함수)은 MySQL 5.6에서 지원됩니다. 스토어드 루틴은 서버에 저장할 수있는 일련의 SQL 문입니다. 이 작업을 수행하는 클라이언트는 개별 명령문을 반복 실행을 계속 필요는없고, 대신 스토어드 루틴을 참조 할 수 있습니다.
스토어드 루틴은 mysql
데이터베이스의 proc
테이블이 필요합니다. 이 테이블은 MySQL 5.6 설치 절차 중에 작성됩니다. 이전 버전에서 MySQL 5.6으로 업그레이드하는 경우 반드시 부여 테이블을 업데이트하여 proc
테이블의 존재를 확인하십시오. 섹션 4.4.7 "mysql_upgrade - MySQL 테이블 체크 및 업그레이드" 를 참조하십시오.
스토어드 루틴은 특히 다음과 같은 특정 상황에서 도움이됩니다.
클라이언트 응용 프로그램이 다른 언어로 작성되어 있거나 다른 플랫폼에서 동작하고 있지만 동일한 데이터베이스 작업을 수행 할 필요가있는 경우.
보안이 가장 중요한 경우. 예를 들어, 은행에서는 모든 일반적인 작업에 대해 저장 프로 시저 및 저장 기능을 사용합니다. 이에 따라 일관된 보안 환경을 제공 루틴에 의해 각각의 조작이 올바르게 기록되도록합니다. 이러한 설정은 응용 프로그램 및 사용자는 데이터베이스 테이블에 직접 액세스 할 수 없지만, 특정 스토어드 루틴을 실행할 수 있습니다.
스토어드 루틴은 서버와 클라이언트간에 전송해야하는 정보가 적어 지므로 성능을 높일 수 있습니다. 그 트레이드 오프는이를 통해 서버 측에서 수행하는 작업이 많아 클라이언트 (애플리케이션)상에서 이루어지는 작업이 줄어들 기 때문에 데이터베이스 서버의로드가 증가합니다. 하나 또는 소수의 데이터베이스 서버에서만 다수의 클라이언트 시스템 (Web 서버 등)에 서비스를 제공하는 경우에는이를 검토하십시오.
스토어드 루틴을 사용하면 데이터베이스 서버에서 함수 라이브러리를 보유 할 수 있습니다. 이것은 내부적으로 (예를 들어 클래스를 사용하여) 이런 설계를 가능하게하는 현대의 응용 프로그램 언어에서 공유되는 기능입니다. 이러한 클라이언트 응용 프로그램의 언어 기능을 사용하면 데이터베이스 사용의 범위 밖에서도 프로그래머 이점이 있습니다.
MySQL은 스토어드 루틴에 대해 SQL : 2003 구문을 따르며, 이것은 IBM의 DB2에서도 사용되고 있습니다. 여기서 설명하는 모든 구문이 지원되며, 모든 제한 사항 및 확장이 적절히 문서화되고 있습니다.
추가 리소스
저장 프로 시저 및 저장 기능을 상대 할 때는 저장 프로 시저의 사용자 포럼 이 도움이됩니다.
MySQL의 저장 루틴에 대한 자주 묻는 질문과 답변 내용은 섹션 A.4 "MySQL 5.6 FAQ : 저장 프로 시저 및 저장 함수" 를 참조하십시오.
스토어드 루틴의 사용에는 몇 가지 제한이 있습니다. 섹션 D.1 "저장 프로그램 제한 사항" 을 참조하십시오.
스토어드 루틴의 바이너리 로깅은 섹션 20.7 "저장 프로그램의 바이너리 로깅" 에서 설명한대로 이루어집니다.