管理数据库中不断增长的大型表的好方法是什么?
What is a good way to manage large ever growing tables in a database?
我正在构建一个用于保存病历的 Web 应用程序。此应用程序的要求是记录对患者数据的所有更改(查看、创建、更新、删除)以及系统中几乎所有其他有用的信息(登录、cron 运行、数据导出等)。
我正在将数据存储到数据库中 table,目前该数据库运行良好。然而,这个 table 很可能会很快变得难以控制并使数据库膨胀。我不允许删除日志条目。
我目前的计划是选择一个任意的大小(比如 100 万个条目,大但仍可管理)。当 table 达到 100 万个条目时,我将 100,000 个最旧的条目移动到一个文件中,并将其存储到我们的文件服务器上。
有没有人对这个问题有任何经验,并且对如何处理它有 other/better 想法?
补充信息:
我主要担心的是这些数据中的任何内容都不会被删除。然而,数据不一定需要在几个月后访问。由于此数据在逻辑上可能会在几年内达到 10 亿个条目(我有 300 个此数据库的副本,所有副本都包含此 table),因此管理大小和性能的好方法是什么。这个 table 需要放在传呼机上,当它突破 100 万更不用说 10 亿时,这显然会成为一个问题。
这样的案例,就是为分区量身定做的。使用分区策略,您可以将数据跨越多个表。这有助于平衡 I/O、加快分区特定查询的访问时间等。这本身就是一门学科,分区键的选择至关重要。在许多情况下,例如像这样的日志数据,人们通常会根据日期时间值进行分区。
我正在构建一个用于保存病历的 Web 应用程序。此应用程序的要求是记录对患者数据的所有更改(查看、创建、更新、删除)以及系统中几乎所有其他有用的信息(登录、cron 运行、数据导出等)。
我正在将数据存储到数据库中 table,目前该数据库运行良好。然而,这个 table 很可能会很快变得难以控制并使数据库膨胀。我不允许删除日志条目。
我目前的计划是选择一个任意的大小(比如 100 万个条目,大但仍可管理)。当 table 达到 100 万个条目时,我将 100,000 个最旧的条目移动到一个文件中,并将其存储到我们的文件服务器上。
有没有人对这个问题有任何经验,并且对如何处理它有 other/better 想法?
补充信息: 我主要担心的是这些数据中的任何内容都不会被删除。然而,数据不一定需要在几个月后访问。由于此数据在逻辑上可能会在几年内达到 10 亿个条目(我有 300 个此数据库的副本,所有副本都包含此 table),因此管理大小和性能的好方法是什么。这个 table 需要放在传呼机上,当它突破 100 万更不用说 10 亿时,这显然会成为一个问题。
这样的案例,就是为分区量身定做的。使用分区策略,您可以将数据跨越多个表。这有助于平衡 I/O、加快分区特定查询的访问时间等。这本身就是一门学科,分区键的选择至关重要。在许多情况下,例如像这样的日志数据,人们通常会根据日期时间值进行分区。