我在 MySQL 中有一个消息表,用于记录用户之间的消息。除了典型的 id 和消息类型(所有整数类型)之外,我需要将实际的消息文本保存为 VARCHAR 或 TEXT。我设置了 3000 个字符的前端限制,这意味着消息永远不会被插入到数据库中。
是否有使用 VARCHAR(3000) 或 TEXT 的理由?写 VARCHAR(3000) 有点违反直觉。我已经在 Stack Overflow 上浏览过其他类似的帖子,但如果能获得特定于这种常见消息存储类型的 View 会很好。
最佳答案
TEXT
和BLOB
可以 存储在表之外,表中只有一个指向实际存储位置的指针.它的存储位置取决于很多因素,例如数据大小、列大小、row_format 和 MySQL 版本。VARCHAR
与表内联存储。当大小合理时,VARCHAR
会更快,其权衡会更快取决于您的数据和您的硬件,您希望使用您的数据对真实场景进行基准测试。
关于MySQL:大型 VARCHAR 与 TEXT?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2023481/