1. 程式人生 > >探討-資訊管理系統中,影象、檔案資料儲存方式

探討-資訊管理系統中,影象、檔案資料儲存方式

      常用的資訊管理系統,經常會有大量的法規、影象、附件等檔案需要存放,與之相對的許多大型資料庫系統也有對應的資料庫型別用於存放,然而,在一些大型應用管理系統中,常常會因為這些資料型別的存在或者資料庫設計的不合理,導致系統非常慢、所需的儲存空間非常大等一系列讓設計、開發人員非常煩心的事情,究竟該如何來解決這些常見的問題,或者有沒有這類最佳設計實踐呢?在這裡我們一起來探討一下這類問題吧,或許能幫助到你。

      在關係型資料庫中,大資料量影象資料等大型物件是由lob型欄位來進行存取的。以Oracle資料庫為例,lob型資料有以下幾種:
Clob: 可以儲存單位元組型資料
Nclob:儲存定寬的多位元組國家字符集資料
Blob: 可以儲存無結構的二進位制資料。
Bfile: 應對Oracle資料庫以外儲存的大型二進位制檔案進行只讀形式的訪問。和其它三種lob型別資料不同的是,bfile型別資料儲存在一個單獨的檔案中,該檔案不由Oracle來維護。
      常見的儲存策略:建立獨立的表空間,使用CLOB或BLOB來存放這些資料,但是BLOB大物件資料是資料量很大的資料型別,它會佔用大量的硬碟空間、記憶體和網路資源,因此合理地設計一個包含有BLOB大物件資料型別的屬性表,對提高儲存效率、查詢速度應該有一定的提高。

      個人認為,儘量不使用BLOB儲存二進位制大物件,也可以儲存於表外,作為檔案系統,資料型別的選擇要根據將要儲存的BLOB的實際大小。假如資料不會超過8K,那麼就使用Varchar或者varbinary資料型別。假如這些大物件的尺寸超過8K,那麼就作為檔案儲存於作業系統,表中只儲存對應的指標。

      與之對應,bfile欄位實際的檔案在檔案系統中,欄位中儲存的是檔案定位指標.bfile對oracle來說是隻讀的,且也不參與事務性控制和資料恢復。