第150回 Generated Columnを利用してみる | gihyo.jp https://gihyo.jp/dev/serial/01/mysql-road-construction-news/0150
> Generated Columnは、定義した式に従って値を生成してカラムのように扱える仕組みです。Generate Columnには種類が2種類あり、VIRTUALとSTOREDになります。何も指定を行わなかった場合はVIRTUALがデフォルトで適用されます。VIRTUALは計算結果を保存せずにSELECTするたびに再計算される仕組みで、文字通り仮想的なカラムとして操作することができます。
>
> 対してSTOREDは、挿入と更新を行った際に事前に計算した結果をカラムに保存する仕組みになります。こちらは物理的に結果が保存されているので、通常のカラムと同様に扱うことができます。
第150回 Generated Columnを利用してみる | gihyo.jp https://gihyo.jp/dev/serial/01/mysql-road-construction-news/0150
> 使い分けとしては、基本的にはVIRTUALで問題になることはあまりないと思います。VIRTUALで宣言された場合でも、5.7.8からセカンダリインデックスが張れるようになりました。この際にはカラムには計算結果は保存されませんが、当然ですがインデックスには計算結果が保存されています。
>
> 現状では、VIRTUALを指定するとセカンダリインデックス以外のインデックスで使用することができないため、主キーや全文検索インデックス等のインデックスにしたい場合にはSTOREDにする必要があります。