我了解MySQL文本和MediumText字段的大小/存储限制,但我只是想确保(在我签署更改之前)我不会考虑将具有现有数据的字段从文本转换为MediumText的任何不利影响。
我关心的主要是性能、完整性和磁盘存储。
谢谢

最佳答案

至于数据库层的性能、完整性和磁盘存储,我不担心。
变量长度数据(如varchar、text和blob)存储时没有填充。
我不知道诚信有什么问题。所有数据类型都由数据库引擎进行原子化处理。
当然,如果您有很长的文本数据,那么在您获取数据时,磁盘I/O和网络带宽将需要更多的存储和更多的时间。但如果这就是你需要放在数据库中的数据,那么这就是你要做的。
我可以想到一个可能的影响:
一些客户机接口库预先分配一个缓冲区来保存结果,并为可能的最大值分配足够的内存。客户机在获取数据之前不知道数据的长度,因此必须在假设数据可能与数据类型支持的时间一样长的情况下分配足够的空间。
因此,库将为每个mediumtext分配16MB,而为每个text分配64KB。如果您的客户机层内存限制很低,那么应该注意这一点。例如,php有一个用于脚本的memory_limitconfig参数,为数据结果集分配的缓冲区将计入该参数。

09-26 21:41