我可以存储大量的数据(<=4G)在一个表格列。但它是一个好主意吗?

StackOverflow https://stackoverflow.com/questions/2091541

  •  21-09-2019
  •  | 
  •  

做一个很长的故事很短的,一个应用程序的一部分,我的工作需要存储大量的数据在一个数据库,用于另一部分应用程序来挑选了以后。通常这会是 < 2000年行,但可以偶尔超过300 000名行。数据需要暂时保存和可以删除之后。

我一直在玩弄各种想法和一件事想到今天。的 LONGTEXT 数据类型可以储存最多2^32位字节,这相当于4GB。现在,这是一个很大的东西塞进一个表行。你要注意,数据大概不会超过 60至80MB 在大多数。但是我的问题是,它是一个好想法到实际上这么做?

这两个方案目前,我正在酝酿使用是这样的:

  • 插入的所有数据作为个别行为"临时"的表格,将被截断之后完成。
  • 插入的所有数据作为serialized string into a LONGTEXT 列一行,应删除后完成。

纯粹从性角度看,它将能更好地储存的数据为潜在的>300,000名单独行,或者作为一个60MB LONGTEXT 条目?

如果这是一个洗,我可能会去的 LONGTEXT 选项,因为它将使该应用程序的一部分,拿起的数据更易于编写。它还将配合更好的又一个部分,这将增加总体性能的应用程序。

我将感谢任何的想法。

有帮助吗?

解决方案

将所有这些数据进入 LONGTEXT...亵渎!!:)

虽然严重,它发生对我如果你这样做,你就没有别的选择比以提取它的所有在一个巨人,件。如果它传播到各行,另一方面,你可以有你的前端获取它在较小批量。

至少给自己的选项似乎是明智的事情要做。 (铭记,低估了未来的尺寸要求的一次数据可以是一个致命的错误!)

如果你的设计你的表格吧,我很怀疑,60MiB的数据传播了300.000行将任何效率低于取60MiB的文字和分析,关于前端。

最终的问题是:你认为你的前端可以分析的文本,效率更高比MySQL可取?

其他提示

这应该是美好的只要你 使用的存储器储存引擎.在MySQL,这种装置使用的存储器中存储的引擎,而不是少或些.否则盘的使用将带来你的应用到它的膝盖。

什么样的数据,以及它将如何使用?也许这会是好多存储和处理它的记忆中的应用程序。至少,它将更快,并不会载数据库引擎。

你总是可以将其存储在数据库作为300,000名排格式和使用缓存缓存的数据,所以你不必再做一次。请注意,缓存存储器中存储的机器所以如果你使用了大量的这些数据,你可以的方式来设置一个低到期。但缓存显着加快的时间来获取数据,因为你没有做到查询每一页上的负荷。

如果你要只是写一个大型、临时BLOB你可以考虑编写一个临时文件上的共享文件系统代替。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top