如果对于医院等类似机构,存放的个人照片或者其他的影像资料较多,mongodb数据库性能和功能上是否合适呢?
非结构化的文本,经常需要迭代的表结构,单机数据量无法承载的场景适合选用mongodb
一般来说,除了强事务,强关联的程序外,都适用MongoDB
数据为图片和影像时,不建议把数据存在数据库中(包括mongodb),因为会造成数据库难以管理,而且即使适用GridFS,也不推荐。一般来说少量图片可以放在GridFS,但是大量后,会遇到性能损失。
最后,如果存图片建议使用分布式存储,比如说ceph,glusterfs,模式使用对象存储,是更好的解决方案
小于16MB的文件可以直接存在document里面(BinData)。大于16MB的使用GridFS存放,文件会被切分成255kB的chunk,在GridFS里面除了原文件的集合,还有一个集合用来存放metadata。
注意:在GridFS中,由于文件是被切割成chunk后存入,如果有文件update的场景,不能保证整个文件的原子性;变通的方法是保存多个版本的文件,在文件写入完成后,将metadata指向最新的版本。
收起