如何处理大关系数据

how to handle big relational data

我有一个 MySQL 数据库。在其中一个表中,我有一个名为 eventjson 列。 event 的输入类型是以下数组:

{
 cam:{x:number,y:number,z:number},
 scn: {x:number,y:number,z:number},
 time: Date
}

它包含分析数据,一条记录最多可以包含数组内的20,000个元素。对于一种产品,我可能会获得 12,000 条记录。当我 运行 我对 select * from ABC where product_id=3 的简单查询时,最多需要 2-3 分钟来获取这个大数据。如果我执行某些组或任何其他查询,将花费更多时间。我的问题是如何处理如此大的数据?大公司是怎么管理的?

当存储文件是一个选项并且您真的想使用关系数据库时,而不是将 json 存储为 .json 文件并使用文件流读取它以获取它。文件的路径可以存储在列中。除此之外,请使用 mongodb 或 sqlite3

之类的东西

正如有人已经在评论中指出的那样,关系数据库不是最适合此类数据的(假设您的 'event' 架构可能会发生变化)。但是 MySQL 确实提供了一种解决方法,即使用生成的列并对它们进行索引。

You can read up on it here

除此之外,由于您的数据确实具有结构,您也可以使用另一个 table 来存储事件数据。简单地将某些东西存储为 JSON 并不意味着数据没有结构。您需要了解您的数据,才能真正了解什么最适合存储和处理它。