2013-08-23 59 views
0

我有一个巨大的数组(最多9,000个字符),我想保存在我的MYSQL数据库中。我将使用json_encode()将它编码为JSON。MYSQL列中的9,000个char字符串 - 要使用哪种数据类型?

我想确定保存它的最佳数据类型。从我所了解的MYSQL文档中,行内存限制是65,535字节,varchar本身最多可以达到65,535字节。所以至多我的9000个字符的JSON字符串最多可以占用27,000个字节,每个字节有3个字符,使我在整个行的65k限制之下。

有了这些信息,我就相信varchar(9,000)应该能够做到这一点,但我是新手,所以我不确定。

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

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

+0

您确定要在MySql中使用此类数据吗?你有没有考虑过使用MongoDB? – Hrishi

+3

我建议TEXT ... – 2013-08-23 20:01:22

+0

我不熟悉MongoDB,我将不得不考虑它。你为什么建议MongoDB通过MYSQL进行这个应用程序?正如Timur所建议的,我将不得不考虑TEXT和BLOB。谢谢。 – Vigs

回答

0

我会亲自尝试存储在服务器上的JSON文件,而是要回答你的问题TEXT和BLOB将是您最好的选择,VARCHAR是快,但不是当有许多字符

+0

我的问题是将有(我们的假设)在网站上的10,000个用户,并且每个用户将有至少一个与它们相关的9,000个char数组。 – Vigs

+0

我会研究BLOB和TEXT,谢谢。 – Vigs

+1

如果它是存储在服务器端,并且它已经在JSON中,那么TEXT就是两个选择中较好的一个...... BLOB更适用于二进制数据(因此,二进制大型对象) – user2366842

1

你或许应该也考虑如果将所有这些数据首先存储在数据库中是一个好主意。每次你想看一件作品时,你真的想要检索和解析整个9000 char JSON字符串吗?然后,如果您想修改一次,则必须重新编码并重新存储所有数据。

如果这些JSON字符串需要的比任何时候都少,我会建议将数据分解成实际的表和字段,并且仅检索/设置给定请求所需的位。

+0

检索信息并解码它将会发生数千一分钟的时间。即:当用户访问该网站时,该网站被填入这个信息。基本上在任何给定的页面上加载多达100个这些记录将不得不被检索并解码然后显示。但是,这些记录只能每24小时编码一次并写入数据库。然而,仍然有数以万计的记录必须被编码和保存。我已经考虑过你提出的许多领域和表格,而不是一个巨大的领域。我可能不得不更多地考虑这一点。 – Vigs