假设我使用varchar
设置了size=200
字段。我的问题是,在MySQL中,即使字段包含空值,我是否会在每次插入数据库时丢失内存?如果它会丢失,有没有办法保存它们?
答案 0 :(得分:2)
关键字为dynamic rowsize
: Dynamic Table Characteristics
答案 1 :(得分:0)
只要它们是varchar和mysql,否则,在插入null时不要使用这200个字符。
但是,这是一个空间问题,而不是内存问题。它产生了很大的不同,因为磁盘空间现在非常便宜,所以通过尝试使用更少的存储来优化您的架构是没有意义的。
恰恰相反,我宁愿将该字段定义为char(200)并且每行最多浪费200个字符,而作为回报,数据库引擎只需通过计算行就知道存储中的确切偏移量,因此节省时间和cpu周期,这是不便宜的。