优化案例--定期归档数据

归档历史数据

 

很少有开发会考虑到数据归档的问题已经数据增长的问题,

当程序运行一段时间后,就会出现各种问题,部分问题可以

修改SQL语句或使用索引来解决,但如果SQL语句无法修改,

糟糕的SQL语句无法使用索引,归档历史数据便成为一种

解决手段。

 

如某系统登录表每天增加 20W 数据,系统需访问最近一周的数据,

系统运行一年后,积累数据 6000W 数据,系统中某一查询造成

整表扫描,消耗大量IO和CPU资源,并导致内存压力。

 

解决方法:

将表中数据按天分区,定期将一周前数据归档,这样将表扫描消耗

的资源控制在可接受的范围。

 

 

归档历史数据需要考虑以下问题

1> 那些属于历史数据(数据的访问频率和访问几率)

2> 历史数据如何访问(访问的程序和访问的方式)

3> 历史数据如何存放(同表/同库/异库/其他实例)

 

归档数据带来的好处:

1> 提高查询性能,避免扫描历史数据

2> 合理利用磁盘,可将历史数据放置到速度教慢的磁盘

3> 将历史数据归档到其他库减少备份时间和备份占用空间

4> 将历史数据归档到只读文件组,减少锁开销

5> 降低DBCC CHECKDB和INDX维护等时间

posted on   笑东风  阅读(516)  评论(0编辑  收藏  举报

编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 25岁的心里话
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现

导航

点击右上角即可分享
微信分享提示