Loading...
MySQL 9.5 Reference Manual 9.5의 27.2 Using Stored Routines의 한국어 번역본입니다.
아래의 경우에 피드백에서 신고해주신다면 반영하겠습니다.
감사합니다 :)
27.2.1 Stored Routine Syntax
27.2.2 Stored Routines and MySQL Privileges
27.2.3 Stored Routine Metadata
27.2.4 Stored Procedures, Functions, Triggers, and LAST_INSERT_ID()
MySQL은 stored routine(프로시저와 함수)을 지원합니다. stored routine은 서버에 저장될 수 있는 일련의 SQL 구문입니다. 한번 이렇게 저장해 두면, 클라이언트는 개별 구문을 계속해서 재전송할 필요가 없고 대신 stored routine을 참조하면 됩니다.
Stored routine은 특정 상황에서 특히 유용할 수 있습니다:
여러 클라이언트 애플리케이션이 서로 다른 언어나 서로 다른 플랫폼에서 작성되었지만, 동일한 데이터베이스 작업을 수행해야 하는 경우.
보안이 가장 중요할 때. 예를 들어 은행에서는 모든 공통 작업에 대해 stored procedure와 function을 사용합니다. 이는 일관되고 안전한 환경을 제공하며, routine은 각 작업이 적절히 로그되도록 보장할 수 있습니다. 이런 구성에서는 애플리케이션과 사용자가 데이터베이스 테이블에 직접 접근할 수 없고, 특정 stored routine만 실행할 수 있습니다.
Stored routine은 서버와 클라이언트 사이에 전송해야 하는 정보의 양이 줄어들기 때문에 개선된 성능을 제공할 수 있습니다. 반면, 이것은 데이터베이스 서버에서 더 많은 작업이 수행되고 클라이언트(애플리케이션) 쪽에서는 더 적은 작업이 수행되므로 데이터베이스 서버의 부하를 증가시킨다는 트레이드오프가 있습니다. 여러 클라이언트 머신(예: 웹 서버)이 소수의 데이터베이스 서버에 의해 서비스되는 경우에는 이 점을 고려해야 합니다.
Stored routine은 또한 데이터베이스 서버에 함수 라이브러리를 갖출 수 있게 해 줍니다. 이는 내부적으로 이러한 설계를 가능하게 하는 현대적인 애플리케이션 언어(예를 들어, 클래스를 사용)의 기능과 공통점이 있습니다. 이러한 클라이언트 애플리케이션 언어 기능을 사용하는 것은 데이터베이스 사용 범위를 벗어나더라도 프로그래머에게 이점이 있습니다.
MySQL은 stored routine에 대해 SQL:2003 구문을 따르며, 이 구문은 IBM의 DB2에서도 사용됩니다. 여기에서 설명하는 모든 구문은 지원되며, 모든 제한사항과 확장은 적절한 위치에 문서화되어 있습니다.
Stored procedure와 function으로 작업할 때
Stored Procedures User Forum을 유용하게 사용할 수 있습니다.
MySQL의 stored routine과 관련된 자주 묻는 질문에 대한 답변은 Section A.4, “MySQL 9.5 FAQ: Stored Procedures and Functions”을 참조하십시오.
Stored routine 사용에는 몇 가지 제약이 있습니다. Section 27.10, “Restrictions on Stored Programs”을 참조하십시오.
Stored routine에 대한 바이너리 로깅은 Section 27.9, “Stored Program Binary Logging”에 설명된 대로 수행됩니다.
27.1 Defining Stored Programs
27.2.1 Stored Routine Syntax