본문 바로가기
728x90

개발26

저장 함수(Stored Function) - 저장 프로시저와 거의 비슷하나 실행 후 결과 값을 반환(return) 한다는 점이 다름 - 사용자 정의 함수 라고도 부름 - MySQL은 5.0버전부터 사용 가능 저장 함수(Stored Function) - 명령어 RETURNS  함수 실행 후 반환할 데이터의 타입 RETURN  함수를 종료하고 값을 반환 저장 함수(Stored Function) - 생성/사용 * 생성 * 사용 - 기본 함수와 동일하게 함수 실행이 필요한 부분에서 사용 - CALL 을 이용해서 실행 하면 안됨 저장 함수(Stored Function) - 확인 / 삭제 • 저장 함수 확인 SHOW FUNCTION STATUS; SHOW CREATE FUNCTION ; • 저장 함수 삭제 DROP FUNCTION ; 2022. 4. 15.
저장 프로시저(Store Procedure) 1. 저장 프로시저란? 일련의 작업 절차를 정리해서 저장한 것 여러 SQL문을 묶어서 미리 정의해 두고 하나의 요청으로 실행할 수 있음 자주 사용되는 복잡한 작업들을 간단하게 실행 할 수 있음 Application에서 직접 모든 작업을 요청하지 않아도 되기 때문에 부하가 줄어들고 보안이 향상됨 검증되지 않은 저장 프로시저를 실행하는 것은 매우 위험함 MySQL은 5.0버전부터 사용 가능 2. 저장 프로시저 사용 2-1. 저장 프로시저 만들기 BEGIN에서 END까지가 저장 프로시저의 본체이다. 시작 부분에 BEGIN, 끝 부분에 END를 붙여 저장 프로시저의 명령 범위를 명확히 하고 있다. 구분 문자(;) 변경하기 명령문이 완성되지 않은 상태에서 실행되는 부분을 막기 위해 저장 프로시저에서 END를 입력.. 2022. 4. 14.
쿼리 작성 및 최적화 1. MySQL 연산자와 내장 함수 Type 비교 MySQL은 숫자 타입과 문자열 타입 간의 비교에서 숫자 타입을 우선시하므로 문자열 값을 숫자 값으로 변환한 후 비교를 수행한다. MySQL에서는 정해진 형태의 날짜 포맷으로 표기하면 MySQL서버가 자동으로 DATE나 DATETIME 값으로 변환한다. BETWEEN, IN, NOT IN BETWEEN : BETWEEN이 선형으로 인덱스를 검색해야 하는 것과 달리 IN은 동등 비교를 여러번 수행하는 것과 같은 효과가 있기 때문에 여러 column의 인덱스를 최적으로 사용할 수 있다. IN : IN 연산자에 상수값을 입력으로 전달하는 경우는 다른 DBMS만큼 최적화해서 수행할 수 있다. 하지만 IN 연산자의 입력이 상수가 아니라 서브쿼리인 경우에는 상당히 .. 2022. 4. 13.
파티션(Partition) 1. 파티션(Partition)이란? MySQL 서버 입장에서 데이터를 별도의 테이블로 분리해서 저장하지만 사용자 입장에서는 여전히 하나의 테이블로 읽기와 쓰기를 할 수 있게 해주는 솔루션이다. 일반적으로 DBMS의 파티션은 하나의 서버에서 테이블을 분산하는 것이며, 원격 서버 간에 분산을 지원하는 것은 아니다. 2. 파티션을 사용하는 이유 한 테이블이 너무 커서 인덱스의 크기가 물리적인 메모리보다 훨씬 크거나, 데이터 특성상 주기적인 삭제 작업이 필요한 경우 등이 파티션이 필요한 대표적인 예이다. 3. 단일 INSERT와 단일 또는 범위 SELECT의 빠른 처리 레코드를 변경하는 쿼리를 실행하면 인덱스의 변경을 위한 부가적인 작업이 발생한다. 이때 인덱스의 크기가 너무 크다면 쿼리 수행 속도가 느려지게.. 2022. 4. 12.
728x90