【问题标题】:9,000 char string in MYSQL column - which datatype to use?MYSQL 列中的 9,000 个字符字符串 - 使用哪种数据类型?
【发布时间】:2013-08-26 23:30:35
【问题描述】:

我有一个庞大的数组(最多 9,000 个字符),我想将其保存在我的 MYSQL 数据库中。我将使用json_encode() 将其编码为 JSON。

我正在尝试确定保存它的最佳数据类型。据我了解,从 MYSQL 文档来看,行内存限制为 65,535 字节,而 varchar 本身最多可以达到 65,535 字节。因此,我的 9,000 个字符的 JSON 字符串最多可以占用 27,000 个字节,每个字节 3 个字符,这使我远远低于整行的 65k 限制。

有了这些信息,我相信 varchar(9,000) 应该可以解决问题,但我是新手,所以我不确定。

我可以使用 varchar(9,000) 来保存我的 JSON 字符串还是有更高效的数据类型?

谢谢。

*注意:这个 JSON 信息是动态的,基于文本的,创建文件和读取/写入它们不是一个选项,我真的想在 MYSQL 的限制内完成这个。

【问题讨论】:

  • 您确定要在 MySql 中使用此类数据吗?你考虑过使用 MongoDB 吗?
  • 我对 MongoDB 不熟悉,我得研究一下。你为什么建议这个应用程序使用 MongoDB 而不是 MYSQL?正如 Timur 所建议的,我将不得不研究 TEXT 和 BLOB。谢谢。
  • 动态、基于文本和 JSON - 所以我建议使用 MongoDB。 MongoDB 适用于具有这些属性的数据。所以我建议使用 MongoDB。但是在选择数据库时必须小心。如果你想要关系连接,并且有一个关系数据模型,Mongo 不会给你。
  • 我的架构当然是基于关系的。 IE:用户会有字符,字符会有这些巨大的 9,000 字符长度的 JSON 字符串。

标签: php mysql json string types


【解决方案1】:

您可能还应该首先考虑将所有这些数据以 JSON 格式存储在数据库中是否是一个好主意。您真的希望每次查看一个片段时都必须检索和解析整个 9000 字符的 JSON 字符串吗?然后,如果您想修改一次,则必须重新编码并重新存储所有数据。

如果不经常需要这些 JSON 字符串,我建议将您的数据分解为实际的表和字段,并仅检索/设置给定请求所需的位。

【讨论】:

  • 检索信息并对其进行解码每分钟会发生数千次。即:当用户访问该站点时,该站点会填充此信息。基本上,在任何给定的页面加载时,必须检索和解码多达 100 条这样的记录,然后才能显示。但是,这些记录只会每 24 小时编码一次并写入数据库。然而,仍然需要对数以万计的记录进行编码和保存。我考虑了您对众多字段和表格的建议,而不是一个巨大的字段。我可能需要对此进行更多研究。
【解决方案2】:

我个人会尝试将 JSON 文件存储在服务器上,但要回答您的问题 TEXT 和 BLOB 将是您的最佳选择,VARCHAR 很快,但在字符很多时不会

【讨论】:

  • 我的问题是网站上将有(我们的假设)10,000 名用户,并且每个用户将至少拥有与他们相关联的这 9,000 个字符数组中的一个。
  • 如果要存储在服务器端,并且已经在 J​​SON 中,TEXT 是两种选择中更好的选择...BLOB 更适合二进制数据(因此,Binary Large OBject)
猜你喜欢
  • 1970-01-01
  • 2014-05-25
  • 2019-01-16
  • 2017-07-27
  • 1970-01-01
  • 2013-07-02
  • 2014-06-12
  • 2013-01-07
  • 1970-01-01
相关资源
最近更新 更多