詳解通過結(jié)合文件系統(tǒng)給數(shù)據(jù)庫瘦身
通過文件系統(tǒng)給數(shù)據(jù)庫瘦身,就是將數(shù)據(jù)庫中的大數(shù)據(jù),不參與搜索的數(shù)據(jù)通過文件流的方式序列化到硬盤的某個(gè)位置,存儲(chǔ)位置使用hash路徑,即通過數(shù)據(jù)庫表主鍵生成hashcode 然后兩兩切分實(shí)現(xiàn)一個(gè)hash路徑,保證一個(gè)目錄下面的子文件和文件個(gè)數(shù)最多198個(gè),保證了系統(tǒng)的檢索速度.
這里的大數(shù)據(jù)舉一個(gè)例子就是,比如公司表中,一般都有公司簡介,但是公司簡介這個(gè)列的內(nèi)容量比這個(gè)整條數(shù)據(jù)的體積都大,而公司簡介根本不參與搜索,列表等操作,我們就可以講這個(gè)數(shù)據(jù)提出來,放到文件系統(tǒng)中,等需要的時(shí)候我們?cè)侔阉x取出來,如果修改了就重新保存.
程序?qū)崿F(xiàn)的目標(biāo)和目的就是這樣了.
由于公司使用Ibatis作為數(shù)據(jù)庫層的處理框架,接下來的任務(wù)就是修改Ibatis源代碼實(shí)現(xiàn)上述目標(biāo).
至于如何修改Ibatis,我會(huì)后續(xù)寫文章來介紹. 這里我們先討論下這個(gè)方案的可行性
為了一個(gè)更直接的印象,先看看具體的效果
 
數(shù)據(jù)庫的字段
 
這里可以看到 數(shù)據(jù)字段只有四個(gè),比對(duì)象少了兩個(gè)字段
那兩個(gè)字段就會(huì)被存儲(chǔ)到文件系統(tǒng)中
 

執(zhí)行了插入操作,以下是日志文件
 
對(duì)應(yīng)的文件系統(tǒng)中的文件
 
用二進(jìn)制的方式打開這個(gè)文件可以看到
 
讀取單條數(shù)據(jù)
 
讀取結(jié)果
 
雖然程序使用java寫的,但是Ibatis也有.net版本基本應(yīng)該差不多,而我更加喜歡博客園的活躍,就發(fā)到這里了 ,大家討論下 這樣做到底有沒有好處
【編輯推薦】















 
 
 

 
 
 
 