계산해서 나오는 값, 자동으로
Generated column은 같은 row의 다른 컬럼으로 계산해서 만드는 컬럼이야. 종류가 둘 있어.
- VIRTUAL — 읽을 때 계산해. 저장 공간을 더 안 써. 따로 안 적으면 이게 기본이야.
- STORED — 쓸 때 계산해서 row에 넣어둬. 읽기가 빠른 대신 공간을 먹어.
자주 뒤지는 파생값에 쓰면 좋아. email에서 뽑은 도메인이라든가, content 덩어리의 길이라든가, JSON에서 꺼낸 필드 같은 것들. generated column에도 인덱스를 걸 수 있고, STORED면 조회가 아주 빨라져.
Tip: STORED generated column에 인덱스를 얹는 게 query 성능을 위해 파생값을 실체화하는 가장 깔끔한 방법이야. UPDATE trigger를 따로 쓸 필요가 없어. schema가 계산 규칙을 강제하니까 앞뒤 안 맞는 값이 저장될 수도 없고.