在SQL表中记录用户活动-大量数据?

时间:2018-11-21 20:31:29

标签: php sql

我有一个在线应用程序,我想记录关键的用户事件,例如用户登录,注销,查看特定记录的时间。对于这些交互中的每一个,我都可以轻松地将带有用户ID,事件和时间戳的新行添加到sql表中,但是我会很快就结束一个太大的表吗?

EG-100,000个用户,平均每个会话10个日志-已经有一百万行了?这有问题吗?我什么都不担心吗?

我知道SQL数据库可以容纳几乎无限量的数据,但是问题出在您想要操纵数据的时间以及花费的时间。如果我有一个包含4亿行的表,并且想快速提取与特定用户相关的行,那么我想我会发现加载时间很慢。

4 个答案:

答案 0 :(得分:1)

假设您每月获得100.000用户,那将是几兆字节的存储空间?我的手机拍摄的照片大于该尺寸。

首先要做最简单的事情。如果要在数据库中插入记录,请执行此操作。

答案 1 :(得分:0)

亲自了解-您真正需要什么数据?

  • 我认为这是一些摘要数据

因此,每天运行一些cron脚本的女巫会将关于用户的必要数据汇总到数据长度更少的另一个表中。 计算完必要的数据后,从原始表中删除无用的行。

答案 2 :(得分:0)

  

如果我有一个包含4亿行的表,并且想要快速提取与特定用户相关的表,我想我会开始看到缓慢的加载时间。

数据库正是针对这种类型的操作的索引支持。因此,如果您正确地设计数据库,您将不会看到较差的性能。

答案 3 :(得分:0)

对于真正的基本数据流收集,任何SQL数据库都可以使用,但是您最终将希望查看与这种类型的数据更一致的内容。对于这种类型的时间序列数据,streaming DB type可能更合适: