我在MySQL中有一个messages表,它记录用户之间的消息。除了典型的ID和消息类型(所有整数类型)之外,我需要将实际的消息文本保存为VARCHAR或text。我将前端限制设置为3000个字符,这意味着消息插入数据库的时间永远不会超过这个长度
使用VARCHAR(3000)或TEXT有什么理由吗?写VARCHAR(3000)有点违反直觉。我也读过其他类似的关于堆栈溢出的文章,但如果能获得这种常见消息存储类型的特定视图,那就太好了
-
TEXT和BLOB可以通过在表外存储,而表只有一个指向实际存储位置的指针。存储位置取决于很多因素,如数据大小、列大小、行格式和MySQL版本 -
VARCHAR与表内联存储VARCHAR会更快,权衡速度会更快,这取决于您的数据和硬件,您可能希望使用数据对真实场景进行基准测试