我正在开发一个用户可以上传 1-6 张图片的应用程序。
我以前从未处理过图像和数据库,所以我想知道是否有什么特别需要注意的地方。
另外,我读到图像是数据密集型的,并且想知道我是否应该将它们与其他数据托管在同一个数据库中。或者我是否应该为他们创建一个完全不同的数据库。
谢谢
我正在开发一个用户可以上传 1-6 张图片的应用程序。
我以前从未处理过图像和数据库,所以我想知道是否有什么特别需要注意的地方。
另外,我读到图像是数据密集型的,并且想知道我是否应该将它们与其他数据托管在同一个数据库中。或者我是否应该为他们创建一个完全不同的数据库。
谢谢
最常见的解决方案是,正如@Akina 所评论的那样,将图像存储在文件系统中,并且只在数据库中存储某种引用(文件路径或类似的),使您可以在文件系统中唯一标识图像。
但是,也有将图像直接存储在数据库中的用例。也许您没有权限在文件系统上存储文件。也许你有很多内存并且你不希望图像占用那么多空间,将文件放入数据库意味着你只需要备份数据库而不必担心文件的单独备份系统。
将图像存储在数据库中的一大缺点显然是它们会使您的数据库增长到无法维护的大小,备份需要很长时间,您可能必须采取特殊步骤来避免中断用户(即避免锁定)运行备份时很长。也许您也无法再将整个数据库放入 RAM,这将导致速度变慢。此外,图像通常需要
BLOB
分栏,而分栏也有其自身的缺点。