MySQL表历史记录和快照的最佳方式[关闭]。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL表历史记录和快照的最佳方式[关闭]。相关的知识,希望对你有一定的参考价值。

我正在用Laravel 7和mysql开发一个CRM。在其中我有一个客户的订单.我想做2件事情:

  1. 让订单总是指向客户数据, 从它被创建的地方开始
  2. 存储客户的历史信息(来自客户表)。

过去我用过_历史表,结构和原来的表一样,_快照表,只有变化(如:id_snapshot,id_customer,列,值,日期),在mysql中用json格式的数据快照(如客户数据)。

但我不知道什么是最好的可扩展的解决方案。

答案

基本上, 为这些数据存储SQL可能是一个好方法. 你可以想象在AWS RDS等云提供商上使用一个可扩展的MySQL实例。

另一种可能的方式是使用NoSQL数据库,如MongoDB或Elasticsearch。它更容易扩展,特别适合JSON数据。

如果对性能没有要求,你也可以使用100%的SaaS服务,比如Firebase,甚至将JSON数据存储在S3服务上。

另一答案

你可以自己使用触发器和历史表来实现这种审计框架。直到最近,这将是最明智的方式。然而现在,这相当于重新发明轮子,因为MariaDB实现了一个叫做时态表的功能,可以为你实现这个功能。

https:/mariadb.comkbentemporal -data -tables(临时表)

它可以让你看到过去任何时间点的数据。

以上是关于MySQL表历史记录和快照的最佳方式[关闭]。的主要内容,如果未能解决你的问题,请参考以下文章

sqlyog关闭链接能查询历史记录

从历史数据构建每月快照视图

如何为大型历史数据构建mysql表? [关闭]

SQL:如何最好地查询历史表以创建特定日期的快照概览

MySQL - 备份超过 90 天的数据的最佳方式 [关闭]

分库分表之历史表如何选择最佳分片路由规则