我们的基于PHP和MySQL的应用程序创建自定义日志,这些日志被写入到MySQL数据库中供用户执行操作。我们这样做主要是为了便于搜索,因为应用程序已经在使用MySQL进行持久存储,所以它是有意义的。
我们的日志现在包含1760万行,大小为2 2GB。在这个地方走动的时候可不那么友好。
我想知道社区可能会推荐什么更好、更有效的方式来存储日志。
显然,您可以将此表拆分为1周的所有日志,然后删除非关键日志,并将历史关键日志一分为二,例如付款等。
通常,我们通过函数的方式写入日志,例如
playerlog($id,$message,$cash,$page,$ip,$time);但这是一个相当简单的版本,我们也使用MySQL的插入延迟,因为日志对于页面加载并不重要。
发布于 2012-07-19 05:14:37
如果您对使用MongoDB (我假设它来自标记)感兴趣,那么您可能想看看这里:http://docs.mongodb.org/manual/use-cases/storing-log-data/
发布于 2012-07-19 01:21:57
您应该弄清楚需要哪些日志。作为插入后的第二步,您可以设置一个处理日志数据的作业,例如读取日志并处理它们(这会将您的DBMS降级为某种消息传递中间件)。这可能是将部分(如支付)存储到未被删除的存档中,或者将身份验证日志写入到指定保留时间后被删除的位置。但这完全取决于您的用例。
根据您计划分析的内容或查询数据的方式,您甚至可以将它们存储在MySQL之外。
一些可能性:
https://stackoverflow.com/questions/11546669
复制相似问题