大文件存儲
文件的數據庫存儲
- 在數據庫中以字符串的方式存儲文件在本地的路徑
- 優點:節省數據庫空間
- 缺點: 當數據庫或者文件位置發生變化時即無法找到文件
- 將文件以二進制數據的方式存儲在數據庫中
- 優點:文件和數據庫綁定
- 缺點:當存儲文件大時,空間使用大,提取困難
- MongoDB中存儲大文件
- GridFS:是MongoDB中存儲大文件的一種方案,MongoDB中認為超過16M的文件為大文件
- 將文件存儲在MongoDB中,通過兩個集合共同完成該文件的存儲
fs.files
:存儲文件的相關信息,比如: 文件名fileName 文件類型 content_typefs.chunks
:實際存儲文件內容, 以二進制方式分塊存儲,將大文件分成多個小塊,每個小塊占一條文檔- 存入文件 命令行中
mongofiles -d dbname put filename
- 查看文件信息 db.fs.files.find()
- 查看具體文件內容
db.fs.chunks.find({files_id:ObjctId('xxxx')})
- fs.chunks的域
- files_id:值為對應文件子啊fs.files集合中的文檔的_id值
- n:分塊信息
- data:集體文件內容
- 優點:存儲方便,沒有文件個數限制,方便移植
- 缺點:讀寫效率低,只能整體修改不能分塊更新
- GridFS:是MongoDB中存儲大文件的一種方案,MongoDB中認為超過16M的文件為大文件