将用户历史保存在数据库中

时间:2012-07-08 05:38:47

标签: mysql sql database

我需要保留服务器上所有用户活动的历史记录。 活动涉及用户提交数据或一个过程。 该应用程序需要为大约5万个并发用户设计。

最好的方法是什么。如果我创建一个新的历史表,那么考虑到最坏的情况,它会不会被大量的行填充?

最好的方法是什么?

只是为了比喻;考虑一个拥有50k并发用户的图书馆,我必须保留每个用户的图书签到结账历史记录。考虑到用户数量,它不会失控吗?

2 个答案:

答案 0 :(得分:0)

我认为有一些遗漏的细节,你会对这些数据做些什么?你能没有索引吗?或者你可以存档旧数据(旧的可能是一小时前)。

SQLDB编写速度非常快,但是您设计了50K并发用户活动,我建议您在内存中执行一些用户活动,并在X活动时将其刷新到db。

答案 1 :(得分:0)

性能最佳且最安全的方法是在源表上使用触发器实现历史记录表。这是在一个封装对象(表)中实现安全性和实际业务规则的最佳方法。但是,如果您目前没有编写服务器端例程的实践,或者您没有可以为您生成代码的数据字典系统,那么将服务器端用于单个功能可能不切实际。

在代码中实现历史记录表通常有助于保持您最熟悉的语言和习惯,但这意味着除了通过应用程序之外,您不能允许访问您的数据库。我当然不能在这里做出一般规则,这个决定最好由设计团队根据手头的情况和预期的未来需求做出。