【发布时间】:2011-02-21 06:57:13
【问题描述】:
我有一个日志表,用于记录用户在网站上执行的每个操作、点击等。
所以每秒可能有数十万条条目等待写入。
我假设数据库必须一次写入一行,它不能同时写入多行?所以让我们假设有 500,000 个条目是通过 500,000 个登录用户发生的,现在人们每秒都在移动,所以数据库可以每秒处理 100,000 行,余额行会发生什么?
它是自动在队列中等待还是数据库会给出写入错误,或者如果延迟是 5 分钟,它会等待 5 分钟来写入记录吗?
我可以为我的极高写表使用哪些技术/策略等?我知道不要对这些表使用 FK。还有什么?
我的数据库是 MySQL,应用程序在 codeignitor 中。所有表都有innoDB引擎。
【问题讨论】:
-
您需要对日志数据进行哪些类型的查询,结果需要保持多长时间?例如,您可以将日志数据附加到文件中,然后将其批量导入数据库。
-
这是一个活动日志表,其中包含实时提要,例如您的 fb 提要。所以尽可能实时。因为计划是将数据从该表移动到针对用户提要进行非规范化的 activity_log 表。所以如果这个表不是最新的,那么其他表就会卡住。
标签: database-design