单表数据量过大处理策略

今天和一个朋友在讨论怎么样应对单表数据量过大,比如一些交易数据,每天都有10W的交易量。没有多久该表的查询,插入速度将变慢,最终将不可用。

对于关系数据库来说,应对单表数据量过大的策略大体上有两种。

  • 1,分表。
  • 2,归档历史数据。

1,分表

在一些场景下可以将不同年份的数据放至不同的表格中。比如2004年的数据放至Table-2004,而2005年的数据放至Table-2005中。或者自定义一些其它规则。

总体是思想是通过规则,将数据分别放至不同的表中,以证单表数据量不会太大。

应用此技术时,可以通过一些中间手段将这些中间表的细节隐藏起来,比如SQL Server中的分布式视图。

 

2,归档历史数据

还有一种策略是定期Archive历史数据,比如每年的年底,将上一年Production DB的数据Archive至History DB中。

比如在2004年的年底,我们将2002年的数据Archive至History DB;

在2005年的年底时将2003年的数据Archive至History DB。

总体思想是定期Archive数据,保证当时表格中的数据量在一定范围。以此来保证Production DB的速度,同时也可以查询/更新History DB的数据(查询/更新的速度可能很慢)。

应用此技术时,可以通过一些数据库重定向技术。在Production DB查询更新/失败时,去History DB进行查询/更新。

 

适用场景

1,分表操作适用于数据量巨大,但查询更新分布很平均。比如身份证系统,每个人可能被查到的概率大致相等。

2,归档历史数据适用于数据量巨大,但查询分布有规律——最近的数据最常被使用。比如我们的生产数据,5年前的数据基本不用,即使是用了只涉及到查询。这样我们就可以将5年前的数据归档至History DB中并进行查询的优化。

转载于:https://www.cnblogs.com/Jerry-Chou/archive/2010/06/15/1758613.html

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值