我正在创建一个简单的系统,用户可以通过在搜索框中输入该图像的名称来查看小图像。我无法决定如何以最有效的方式存储图像。我想到的3个解决方案,我想知道哪一个是对这个问题的最佳解决方案:将图像存储在数据库vs文件服务器上与服务器上的Zip文件
存储图像的斑点或Base64串在一个数据库和基于与用户输入加载图片简单的查询。这样做会增加数据库的负载并导致更长的加载时间。
将图像作为单独文件存储在文件服务器上。通过根据用户输入分配image.src属性来加载它:image.src =“./server/images/”+ userInput;然而,这样做会增加我服务器上的文件请求数量,所以它会更加昂贵。或者最后,我可以将图像存储在文件服务器上的一个zip文件中。在程序开始时立即下载。这样做的好处是,加载页面时只会有一个请求。但是,加载所有文件需要一些时间。
请注意,每个图像的大小约为1-3KB。所有图像将手动放置在服务器/数据库中。此外,最多只有100-200幅图像。所有这些考虑可能无关紧要。但我想知道推荐的方法是什么。
注意:我运行的服务器是AWS服务器,我发现请求太多会增加服务器的成本。这就是为什么我对方法nr怀疑。 2
#3很可能是一个不起动。如果你有10K图像并且用户只能查看1K(或500,或其他),会发生什么?您已经使用带宽来传输绝大多数内容从未使用的文件,并增加了将从zip文件查看的*文件定位和提取到磁盘上可加载的临时文件的开销观看。您还添加了在添加或删除图像时更新zip文件的开销和复杂性。 –
只有大约100张图片。但是你所说的话仍然适用。好点子。 –
至于你的笔记,无论是请求从数据库还是从磁盘加载图像,你都会有相同数量的请求。 –