产品控 Tower 的用户记录是用什么记录的呢?(动态)

QueXuQ · 2015年05月18日 · 最后由 huobazi 回复于 2015年05月19日 · 8206 次阅读

之前,我们都已存文本,txt 的形式保存用户的操作记录,可是时间长了,发现除了不会给 MySQL 造成太大的压力外,好像没有什么特别多的优势。 而且当我想在页面浏览用户的记录,类似 Tower 的动态那样的时候,就不知道用什么方法读出来才好。

不知道大家都是用什么技术去实现的呢?直接存 SQL?使用 No SQL?And so on.

我想问一下,你直接存数据库遇到什么问题了么?

#1 楼 @lgn21st 其实我们目前并没有尝试去存入到 MySQL 中,但是在完成这个功能时,查了很多相关信息,貌似意见是,这样存,会导致数据库文件变得非常大,浪费数据库的资源,和因为读写操作过于频繁,影响数据库性能。 所以看到这些相关信息,就没有存 SQL 中了。😢

@QueXuQ 放在数据库中可以,有很多方案解决性能和资源问题,比如读写分离,旧数据自动移库等等。关键是放到数据库中处理起来方便。

#2 楼 @QueXuQ premature optimization is the root of all evil

#2 楼 @QueXuQ 先存数据库吧,然后等注册用户过百万,活跃用户几十万,每天用户的日志数据让数据库不堪重负的时候,我们再来讨论怎么帮你花钱的问题。

用 redis 存动态。

Redis 是万精油。

我们是直接存在 MySQL 里面的,只不过把详细数据结构化成了 JSON 数据,单拿了一张表来存,目前为止性能还行

另外,我非常赞同 @lgn21st 的观点

很多人发现自己用 MySQL 慢了,于是就想到 Redis ... 接着有进了另外个坑

楼主有多少量啊就撑不住了...

很多人发现 redis 有坑,于是就想到 mongodb。。。接着又进了另外个坑。

有类似需求,然后我司造了一个轮子,从公司项目分离出来,希望对大家有所帮助。 memorable 是一个能做通过简单配置记录任意 resource change logs,粒度是每个 action, 具体使用请跳转 https://github.com/serco-chen/memorable

谢谢各位,经过尝试,确实 MySQL 直接存是目前比较好的方案。 早之前想用 redis,但是真心不熟,不敢下手。

感谢 @zchar 分享,没想到 JSON 来存也是妥妥的。 😄

#4 楼 @xmonkeycn

premature optimization is the root of all evil

很多人把这句话当作偷懒的借口。

:)

#11 楼 @est 楼主用文本存,为了给 mysql 减轻压力~~~~~~~~~~~~~~~~~~~~~

#17 楼 @hooopo 其实这个做法很好。。。一大堆静态博客生成器就是这样搞的。

#18 楼 @est 好像之前的留言板之类的程序也是。。

PS. 楼主一定只有一台服务器..

数据库那么好的东西都撑不住了,那得值多少钱啊?这时候还用在论坛求助么?花个几万块找人来画个圈就解决问题了

需要 登录 后方可回复, 如果你还没有账号请 注册新账号