【发布时间】:2020-02-02 04:08:08
【问题描述】:
我知道尽可能使用最小数据类型的原则,但我想知道为什么这会适用于 MySQL 中的 TEXT / MEDIUMTEXT / LONGTEXT?如果我使用 LONGTEXT 而不是 MEDIUMTEXT,是否存在性能问题? 我找到了问题What is the disadvantage to using a MySQL longtext sized field when every entry will fit within a mediumtext sized field? ,但我认为这不是性能问题的答案?
LONGTEXT 只是多一点存储空间的问题吗?
什么时候我应该更喜欢 MEDIUMTEXT 而不是 LONGTEXT?
【问题讨论】:
-
您应该使用您真正需要的数据类型.. 差异仅与每个数据类型允许的最大字符数有关.. *TEXT 数据类型具有动态长度.. 并且仅使用内容所需的空间(加上一些字节用于设置单个实际长度)
-
补充@scaisEdge 写的内容,如果字段的插入数据太长会在两种方式下影响性能,有条件地查询它和查询它以获取值,就像一个带有base64图像的字段,但只是因为插入的文本的大小与类型无关。因此,如果您有一个最大大小的 TEXT 和一个带有一个字符的 LONGTEXT,那么 LONGTEXT 的查询速度会更快。
-
例如,我有大约 100000 个字符的值,对于读/写性能,使用 TEXT、MEDIUMTEXT 还是 LONGTEXT 都没有关系?在这种情况下,我总是会使用 LONGTEXT 来获得更大的未来限制。我仍然没有看到较小文本类型的任何优势?
-
如果您知道您的数据将适合较小的类型,您可以为每条记录节省一两个字节,因为长度字段较小。如果您有数百万条记录,那么这些字节就会加起来。
标签: mysql performance sqldatatypes