详解通过结合文件系统给数据库瘦身

运维 数据库运维 其他数据库
通过文件系统给数据库瘦身,就是将数据库中的大数据,不参与搜索的数据通过文件流的方式序列化到硬盘的某个位置的瘦身方法。本文作者希望通过本文,起到抛砖引玉的作用。

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

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

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

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

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

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

 

数据库的字段 


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

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

 


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

 

对应的文件系统中的文件

 

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


读取单条数据


读取结果


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

【编辑推荐】

  1. Oracle数据库开发经验浅谈
  2. 横向比较数据库中不同的索引机制
  3. 关系数据库的末日是否已经来临
责任编辑:彭凡 来源: cnblogs
相关推荐

2011-07-26 14:53:01

数据库发展

2010-07-27 10:15:38

NFS网络文件系统

2017-01-18 18:28:54

大数据数据库技术

2009-12-10 14:27:07

Linux操作系统

2009-02-09 12:52:32

文件加密Oracle数据库

2010-09-09 14:31:31

SQL函数数据库

2022-03-30 08:34:57

数据库系统磁片

2010-08-25 11:19:23

DB2数据库

2010-06-04 18:45:43

Hadoop分布式文件

2009-03-23 10:18:03

IBMDB2数据库

2018-02-24 11:11:02

Linux命令 文件系统

2010-08-05 11:03:55

创建分区文件系统

2011-08-03 13:28:08

Oracle数据库数据库控制文件

2010-08-03 17:29:08

DB2数据库文件系统

2018-08-20 06:35:56

缓存数据库分布式

2009-09-22 11:59:19

2009-11-25 17:48:18

PHP文件系统相关函数

2019-05-29 16:33:32

Linux虚拟系统

2019-05-22 09:00:16

Linux虚拟文件系统

2023-08-05 12:58:51

RPC协议服务端
点赞
收藏

51CTO技术栈公众号