我们都知道MYSQL是一个关系型数据库;在我将要编写的应用程序中,我需要使用关系型数据库,这主要是因为要在实体和表的连接之间共享信息。
但我也有一个非常特殊的情况,我需要跟踪应用程序中发生的一些事件。例如,假设我有一个' user‘表,其中有一个名为'XP’的字段,现在我希望为该用户保留所有导致'XP‘更改的事件。
嗯,最简单的解决方案是创建一个新表,并使用指向负责用户的字段存储事件。但是,这个表变得非常大,充满了不必要的行,从而减慢了整个应用程序的运行速度。
如果我使用的是面向文档的数据库,这当然不是问题,但对于MYSQL,这往往会使一切变慢。
我想在这里了解您的意见,以找到解决问题的可能方法,同时仍然将性能保持在合理的范围内。我没有在网上找到任何相关的研究或文章。
另外,我的想法是将更改保存为( 'User‘表的)字段中的JSON数组,但然后读取字段,将其从文本转换,添加项并再次保存是非常不切实际的。
谢谢
发布于 2016-02-25 11:23:47
您在跟踪哪些类型的事件?也许使用触发器来创建事件会更实用(这样您就不必在插入/更新/等操作时手动执行)。我还会考虑尝试将基于您正在处理的数据的事件分离到以事件为中心的表中,以减少在给定关系上必须处理的数据量(例如,与USER_ID密钥上的用户表相关的LOGIN_EVENT表,然后是与同一密钥上的用户相关的单独的REPORT_REQUEST_EVENT表)。通过分离关注点,您可以创建性能更好的结构。
https://stackoverflow.com/questions/35617466
复制相似问题