gpt4 book ai didi

MYSQL:存储事件日志的最佳方法

转载 作者:行者123 更新时间:2023-11-29 21:23:27 25 4
gpt4 key购买 nike

我们都知道MYSQL是关系型数据库;在我要编写的应用程序中,我需要使用关系数据库,主要是因为实体之间共享信息以及表上的联接。

但我还有一个非常特殊的情况,我需要跟踪应用程序中发生的一些事件。例如,假设我有一个“用户”表,其中包含一个名为“XP”的字段,现在我想保留导致该用户的“XP”更改的所有事件。

嗯,最简单的解决方案是创建一个新表并使用指向负责用户的字段来存储事件。但是这个表变得非常大并且填充了不必要的行,从而减慢了整个应用程序的速度。

如果我使用的是面向文档的数据库,这当然不是问题,但对于 MYSQL,这往往会使一切变慢。

我想在这里了解您的意见,以了解解决问题并仍将性能保持在合理范围内的可能方法。我在网上没有找到任何相关的研究或文章。

PS,我有这样的想法:将更改保存为(“用户”表)字段中的 JSON 数组,但随后读取字段、将其从文本转换、添加项目并再次保存是非常不切实际的。

谢谢

最佳答案

您正在跟踪哪些类型的事件?也许使用触发器来创建事件会更实用(因此您不必在插入/更新/等操作上手动执行此操作)。我还考虑尝试将基于您正在处理的数据的事件分离到以事件为中心的表中,以减少您必须处理给定关系的数据量(例如与 USER 相关的 LOGIN_EVENT 表) USER_ID 键上的表,然后是同一键上与 USER 相关的单独的 REPORT_REQUEST_EVENT 表)。通过分离关注点,您可以创建性能更高的结构。

关于MYSQL:存储事件日志的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35617466/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com