728x90
가상(VIRTUAL) 열
특징:
- 실시간 계산: VIRTUAL 열의 값은 실제로 데이터베이스에 저장되지 않고, 데이터가 조회될 때마다 실시간으로 계산됩니다. 예를 들어, SELECT 쿼리를 실행할 때 해당 열의 값이 계산됩니다.
- 저장 공간 절약: 값이 물리적으로 저장되지 않기 때문에 저장 공간을 절약할 수 있습니다.
- 성능: 값이 실시간으로 계산되므로, 계산이 복잡하거나 조회 빈도가 높을 경우 성능에 영향을 미칠 수 있습니다.
사용 예:
sql
CREATE TABLE example ( base_value INT, calculated_value INT AS (base_value * 2) VIRTUAL );
위 예제에서 calculated_value 열은 base_value의 두 배를 나타내지만, 실제로는 저장되지 않고 조회 시 계산됩니다.
저장(STORED) 열
특징:
- 사전 계산 및 저장: STORED 열의 값은 행이 삽입되거나 업데이트될 때 계산되어 물리적으로 저장됩니다. 이후 조회 시 계산할 필요가 없습니다.
- 빠른 조회: 값이 미리 계산되어 저장되므로 조회 시 계산할 필요가 없어 빠르게 데이터를 가져올 수 있습니다.
- 저장 공간 사용: 값이 물리적으로 저장되기 때문에 추가적인 저장 공간이 필요합니다.
사용 예:
sql
CREATE TABLE example ( base_value INT, calculated_value INT AS (base_value * 2) STORED );
위 예제에서 calculated_value 열은 base_value의 두 배로 계산되어 저장됩니다. 따라서 데이터 조회 시 빠르게 값을 가져올 수 있습니다.
비교
VIRTUAL 열
- 장점:
- 저장 공간 절약
- 단순한 계산이나 드물게 조회되는 경우 유용
- 단점:
- 계산 비용 발생 (특히 복잡한 계산이나 자주 조회되는 경우)
- 성능 이슈 가능
STORED 열
- 장점:
- 빠른 조회 속도
- 계산 비용 없음 (조회 시)
- 복잡한 계산이나 자주 조회되는 경우 유리
- 단점:
- 추가적인 저장 공간 필요
- 삽입 및 업데이트 시 계산 비용 발생
선택 기준
- 데이터 읽기 빈도: 자주 읽히는 데이터라면 STORED 열이 유리합니다.
- 계산 복잡도: 계산이 복잡할수록 STORED 열이 더 적합합니다.
- 저장 공간 제약: 저장 공간이 중요한 경우 VIRTUAL 열이 더 나을 수 있습니다.
- 데이터 변경 빈도: 데이터 삽입 및 업데이트가 자주 발생한다면, VIRTUAL 열이 더 적합할 수 있습니다.
728x90
'SQL' 카테고리의 다른 글
파이썬으로 다루는 MySQL (0) | 2023.04.10 |
---|---|
프로그래머스 년, 월, 성별 별 상품 구매 회원 수 구하기 (0) | 2023.03.27 |
프로그래머스 조회수가 가장 많은 중고거래 게시판의 첨부파일 조회하기 (1) | 2023.03.26 |
MYSQL 문자열 합치기 / 문자열 자르기 / 문자열 바꾸기 (0) | 2023.03.25 |
프로그래머스 조건에 맞는 사용자와 총 거래금액 조회하기 (0) | 2023.03.25 |