다음은 MySQL에 저장된 GENERATED COLUMNS와 MySQL 가상 GENERATED COLUMNS 간의 몇 가지 기본적인 차이점입니다. -
디스크 공간 측면에서
디스크 공간 측면에서 차이가 있는 경우 가상 생성 열은 디스크 공간을 차지하지 않습니다. 반면에 저장된 생성 열은 디스크 공간을 차지합니다.
운영 측면에서
작업 측면에서 차이점을 보면 가상 생성 열은 INPLACE 작업이며, 이는 모든 데이터를 다시 복사할 필요 없이 테이블 정의가 변경됨을 의미합니다. 반면에 저장된 생성 컬럼은 복사 작업으로 테이블에 새 컬럼을 추가하는 것과 비용이 동일합니다.
계산 측면에서
가상 생성 열에서 값은 읽기 작업 및 BEFORE 트리거 동안 즉석에서 계산됩니다. 반면에 저장된 생성 열의 값은 모든 INSERT 및 UPDATE 문에서 업데이트됩니다.
사용 시기
변경이 많이 발생하는 데이터에 대해 가상 열을 사용하는 것을 고려해야 합니다. 가상 열의 비용은 지속적으로 테이블을 읽는 데서 발생하며 서버는 해당 열 값이 무엇인지 매번 계산해야 합니다. 반면에 생성 후 데이터가 크게 변경되지 않거나 전혀 변경되지 않는 경우 Stored Columns 사용을 고려해야 합니다.