假设我有一张table t
有4个普通列 n1
, n2
, n3
, n4
和一个虚拟计算列, c1
. 如果我运行以下查询:
select n1, n2 from t;
,是 c1
为每一行计算,即使我没有将它包括在我选择的列中?
根据这里的官方mysql文档https://dev.mysql.com/doc/refman/5.7/en/create-table-generated-columns.html :
虚拟:列值不存储,而是在读取行时,在任何before触发器之后立即计算。
上面说, rows are read
,不是 columns are read
. 因此,混乱。
在现实中,这是我的实际情况:我正在从上面描述的这样一个表中选择(没有where子句),而且速度非常慢(与其他类似的表相比)。我没有选择computed列,但我猜它仍在计算中,从而导致了慢度。
暂无答案!
目前还没有任何答案,快来回答吧!