我在MySQL中有一个消息表,该表记录了用户之间的消息。除了典型的ID和消息类型(所有整数类型)之外,我还需要将实际消息文本另存为VARCHAR或TEXT。我将前端限制设置为3000个字符,这意味着消息插入数据库的时间绝不会超过此时间。
是否有理由使用VARCHAR(3000)或TEXT?只是编写VARCHAR(3000)有点不合常理。我曾经在Stack Overflow上浏览过其他类似的文章,但是最好获得特定于这种常见消息存储类型的视图。
TEXT并且BLOB 可以 通过将该表存储在表之外,而该表仅具有指向实际存储位置的指针。它的存储位置取决于许多因素,例如数据大小,列大小,row_format和MySQL版本。
TEXT
BLOB
VARCHAR与表内联存储。VARCHAR如果大小合理,则速度更快,折衷的速度会更快,这取决于您的数据和硬件,因此您希望使用数据对实际场景进行基准测试。
VARCHAR