詳解通過結(jié)合文件系統(tǒng)給數(shù)據(jù)庫瘦身
通過文件系統(tǒng)給數(shù)據(jù)庫瘦身,就是將數(shù)據(jù)庫中的大數(shù)據(jù),不參與搜索的數(shù)據(jù)通過文件流的方式序列化到硬盤的某個位置,存儲位置使用hash路徑,即通過數(shù)據(jù)庫表主鍵生成hashcode 然后兩兩切分實(shí)現(xiàn)一個hash路徑,保證一個目錄下面的子文件和文件個數(shù)最多198個,保證了系統(tǒng)的檢索速度.
這里的大數(shù)據(jù)舉一個例子就是,比如公司表中,一般都有公司簡介,但是公司簡介這個列的內(nèi)容量比這個整條數(shù)據(jù)的體積都大,而公司簡介根本不參與搜索,列表等操作,我們就可以講這個數(shù)據(jù)提出來,放到文件系統(tǒng)中,等需要的時候我們再把它讀取出來,如果修改了就重新保存.
程序?qū)崿F(xiàn)的目標(biāo)和目的就是這樣了.
由于公司使用Ibatis作為數(shù)據(jù)庫層的處理框架,接下來的任務(wù)就是修改Ibatis源代碼實(shí)現(xiàn)上述目標(biāo).
至于如何修改Ibatis,我會后續(xù)寫文章來介紹. 這里我們先討論下這個方案的可行性
為了一個更直接的印象,先看看具體的效果
數(shù)據(jù)庫的字段
這里可以看到 數(shù)據(jù)字段只有四個,比對象少了兩個字段
那兩個字段就會被存儲到文件系統(tǒng)中
執(zhí)行了插入操作,以下是日志文件
對應(yīng)的文件系統(tǒng)中的文件
用二進(jìn)制的方式打開這個文件可以看到
讀取單條數(shù)據(jù)
讀取結(jié)果
雖然程序使用java寫的,但是Ibatis也有.net版本基本應(yīng)該差不多,而我更加喜歡博客園的活躍,就發(fā)到這里了 ,大家討論下 這樣做到底有沒有好處
【編輯推薦】