通过文件系统给数据库瘦身,就是将数据库中的大数据,不参与搜索的数据通过文件流的方式序列化到硬盘的某个位置,存储位置使用hash路径,即通过数据库表主键生成hashcode 然后两两切分实现一个hash路径,保证一个目录下面的子文件和文件个数最多198个,保证了系统的检索速度.

这里的大数据举一个例子就是,比如公司表中,一般都有公司简介,但是公司简介这个列的内容量比这个整条数据的体积都大,而公司简介根本不参与搜索,列表等操作,我们就可以讲这个数据提出来,放到文件系统中,等需要的时候我们再把它读取出来,如果修改了就重新保存.

程序实现的目标和目的就是这样了.

由于公司使用Ibatis作为数据库层的处理框架,接下来的任务就是修改Ibatis源代码实现上述目标.

至于如何修改Ibatis,我会后续写文章来介绍. 这里我们先讨论下这个方案的可行性

为了一个更直接的印象,先看看具体的效果

大家讨论下,结合文件系统,给数据库瘦身方案的可行性 

数据库的字段 

大家讨论下,结合文件系统,给数据库瘦身方案的可行性

这里可以看到 数据字段只有四个,比对象少了两个字段

那两个字段就会被存储到文件系统中

大家讨论下,结合文件系统,给数据库瘦身方案的可行性 

大家讨论下,结合文件系统,给数据库瘦身方案的可行性

执行了插入操作,以下是日志文件

大家讨论下,结合文件系统,给数据库瘦身方案的可行性 

对应的文件系统中的文件

大家讨论下,结合文件系统,给数据库瘦身方案的可行性 

用二进制的方式打开这个文件可以看到

大家讨论下,结合文件系统,给数据库瘦身方案的可行性

读取单条数据

大家讨论下,结合文件系统,给数据库瘦身方案的可行性

读取结果

大家讨论下,结合文件系统,给数据库瘦身方案的可行性

 虽然程序使用java写的,但是Ibatis也有.net版本基本应该差不多,而我更加喜欢博客园的活跃,就发到这里了 ,大家讨论下 这样做到底有没有好处

大家讨论下,结合文件系统,给数据库瘦身方案的可行性

相关文章:

  • 2022-12-23
  • 2021-08-09
  • 2021-06-11
  • 2023-01-25
  • 2021-08-10
  • 2022-12-23
  • 2022-12-23
  • 2021-08-10
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2021-07-14
  • 2022-12-23
  • 2022-02-20
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案