MySQL字段中的最大数据长度

时间:2012-03-22 09:56:43

标签: mysql

我正在为My Company设计一个新的论坛,我想确认保存MySQL数据库中的论坛帖子是可扩展的,它会有很好的性能吗? 帖子可能有大约400个字符(可能我将限制为400个字符)。如果我在MySQL字段中保存400个字符的文本,并且表有1000万行,它会影响性能吗? 我的主要约束是表现。可以请有人对此事件有所了解

1 个答案:

答案 0 :(得分:5)

有两种数据类型需要考虑VARCHAR或TEXT

您决定使用哪种数据类型取决于

  • 您展示频率的频率如何?
  • 您存储的字符总数

TEXT和BLOB存储在表格之外,表格只有指向实际存储位置的指针。

VARCHAR与表格内联存储。当大小合理时,VARCHAR会更快,其权衡取决于您的数据和硬件,您需要将真实世界的senerio与您的数据进行对比。

VARCHAR(存储内联)通常更快,如果频繁检索数据(大多数查询都包含)。但是,对于通常不检索的大量数据(即,未被任何查询引用),最好不要将数据内联存储。对于内联存储的数据,行大小有一个上限。

当表具有TEXT或BLOB列时,表无法存储在内存中。这意味着每个查询(没有命中缓存)都必须访问文件系统 - 这比内存慢几个数量级。

如果您发布内容很大,请使用TEXT字段,但将Text字段存储在单独的表中,该表仅在您实际需要时才会访问。这样原始表可以存储在内存中,速度会快得多。

将其视为将数据分成一个“内存表”和一个“文件表”。这样做的原因是为了避免访问文件系统,除非必要时(即仅在需要文本时)。

您可以尝试(帖子,post_text)或(post_details,帖子)或类似的东西。