質問: 17)が必要です。はい。 しかし、この列に格納されている値はすべて17バイトかかりますか?例えば、値432の場合、4バイトしか取ることはできません(私は本当にそう思っています...)、それとも17バイトをとるのでしょうか? 最後に、私はOracleで占有されているサイズが格納されている実際の値に依存していることを知っています。しかし、それはMySQLでも同様に最適化されていますか?
回答: 私は答えは、それはとにかく17バイトかかると思う。あなたが気付いた場合、リンクされたマニュアルページに詳細がありますが、DBMSが値がどれほど長いかを記録する手段はありません。これと比較すると、 `VARCHAR(255)CHARACTER SET ascii` 列の場合、値の長さ(最大サイズは256バイト)を示す値の先頭に1バイトがあります。 `VARCHAR(1000)CHARACTER SET ascii` 列には、長さを示す2バイトがあります。ここでは、値の長さを記録する方法は詳しく述べられていないため、列が常に最大量の領域を占めると結論づけています。