代码之家  ›  专栏  ›  技术社区  ›  tags2k

bigint对于事件日志表是否足够大?

  •  8
  • tags2k  · 技术社区  · 17 年前

    现在我知道bigint是2^64,也就是说,比已知宇宙中的原子多。我不应该担心,因为我仅仅是人类的大脑根本无法摆脱这个数字的巨大影响。

    但是,假设我记录了系统中每个类别、产品和订单的每个更改,从发布到结束。在担心主键值用完之前,我应该关注表写入的性能吗?我应该将不同优先级的事件记录到不同的事件表中吗?我会在硬盘上耗尽原子,然后再耗尽大分子吗?在开始归档/清除事件日志表之前,我应该让它有多大?

    5 回复  |  直到 15 年前
        1
  •  14
  •   schnaader    17 年前

    即使您的每个条目只有1个字节,2^64个条目在您的硬盘上也会占用大约18000000 TB,所以我想您不必担心这个问题。

        2
  •  5
  •   packynix    15 年前

    如果您的应用程序每百万分之一秒向表中添加一条记录,那么它将在耗尽密钥之前运行超过五十万年。

        3
  •  2
  •   S.Lott    17 年前

    “在开始存档/清除事件日志表之前,我应该让它有多大?”

    永远不要清除事件日志——这些信息具有重要的价值。

    但是,当一些管理者坚持需要存档时,您可以显示存储成本与花费的时间:(a)考虑它,(b)获得第二和第三个意见,然后(c)编写一个过程来存档日志记录。

    储存成本直线下降。除了清除日志记录之外,您的时间最好花在任何事情上。

    底线:你有权停止扭伤你的手。一切都很好。你不会犯根本性的错误。

        4
  •  0
  •   Richard Dorman    17 年前

    您不太可能用完主键值。但是,您可能需要考虑如何访问日志表来检索数据。使用此选项可以通知您应该何时存档或清理数据。如果经常读取日志数据,请考虑添加索引以提高读取性能,但请记住,每个添加的记录都需要维护索引。

        5
  •  0
  •   Tom H zenazn    15 年前

    我们处理这一问题的方法是提供日志归档功能,该功能每年将日志表分离到单独的数据库中,允许我们重置日志事件表上的标识种子。

    我们也有不同的日志表,尽管只有两个主表。