본문 바로가기
SQL

MYSQL VIRTUAL 과 STORED 란?

by Shark_상어 2024. 7. 28.
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