我在 MySQL 数据库中有一个列,我想存储其值的所有修订以及更改日期。
MySQL 中是否有任何内置机制允许我执行此操作,或者是否有任何推荐的方法来解决此问题?
最佳答案
MySQL 中没有内置这样的功能。您需要自己实现这一点,具体取决于您需要存储的内容。您可以在持久性逻辑中引入一个层,将所需的日志数据插入到单独的历史表中。
根据您所做的更改量,请务必考虑清理策略,因为随着时间的推移,这些历史记录可能会变得巨大。
如果您正在讨论需要此类历史记录的多个表,则可以根据预期的更改总量,使用单个历史记录表以及标识更改所属表的附加列,或者每个数据表都有一个单独的历史表。
此外,请查看可用的不同存储引擎。有一个压缩的Archive Storage Engine ,一旦插入数据就不允许修改数据,并且还有其他限制,但它的存储要求比 e 低。 G。 InnoDB 的。它是为存档目的而设计的,而不是为了临时查询,因此它可能适合也可能不适合您。
关于MySQL 列值修订历史,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10444821/