最适合约250,000个图像的网页文件夹结构

我将有大约20万张图片作为我网站的一部分。 每个图像将被存储3次:全尺寸,缩略图,更大的缩略图。 全尺寸图像大约在50Kb到500Kb之间。

正常的技术:在VPS上的Linux,Apache,MysqLPHP

什么是最佳的方式来存储这些通过浏览器快速检索和显示

我应该将所有内容存储在一个文件夹中吗 我应该存储全尺寸的图像在一个文件夹,在另一个缩略图等? 我应该将图像存储在1000个文件夹中,并且保留图像所在的文件夹的索引?

位图正在拉伸,而不是平铺

显示全屏图像的EXE

通过命令行拍摄的Android屏幕截图的图像格式

查找文件数据是否为图像(PHP

转储原始图像数据

感谢您的任何build议。 伟业。

在Windows上比较图像的工具

应用简单的水印后图像大小急剧增加

使用16位有符号格式打开简历无法正常工作裁剪和重新调整图像的大小

微软推荐什么本地API来渲染2Dgraphics?

使用GDI显示图像的红色通道

我会使用一个三层或四层深度的分割目录结构,将所有文件均匀地分散到多个目录中,以便于维护和快速访问。

怎么做? 有多种选择:

取出图像名称的第一个字符

以名字的散列的第一个字符

以自拍摄日期1970年以来的最后秒数

数据库中的图像ID的最后一个字符(如果存在的话)

假设我们有IMG8993_full.jpg,IMG8993_thumb.jpg,IMG8993_smallthumb.jpg

那么我们可以有,例如:

/images/I/M/G/8/IMG8993: IMG8993_full.jpg IMG8993_thumb.jpg IMG8993_smallthumb.jpg

除非你的用户打开一个打开的文件夹,其目录列出了你的图像,我不认为文件夹结构会显着增加或减少你的用户的检索速度。 正如其他人所说,确保索引打开。 但是,如果我是你,我会研究(或复制和粘贴)动态提供图像的服务,而不是直接将它们存储在Web文件结构中。 在PHP中查看使用LibGD – 应该在大多数LAMP服务器上预安装。

缺点:

通过服务提供图像比提供直接链接慢一点

如果您使用后端图像存储(如数据库),则可能会导致系统崩溃,并使所有图像暂时不可用

优点:

通过将图像动态调整为缩略图,可以节省存储空间,并使维护更加轻松

一般来说,处理器速度比存储空间便宜

使用URL重写,你甚至可以把丑陋的URL,如

/imageserver.PHP?userID=12345imageId=67890&size=full

变成更光滑,更透明的用户

/jeremyZX/images/myPhoto.jpg /jeremyZX/images/tn/myPhoto.jpg

这将给出整个图像目录结构的外观,而它们确实存储在任何你想要的后端格式中。

取决于你如何索引他们,如何检索他们。

没有什么特别的将它们全部存储在单个文件夹中,但是难以管理。 如果按文件名存储它们,并且文件名是合理正态分布的,则可能希望子文件夹以名称的首字母等进行分隔。如果按照添加的日期进行索引,则可能需要按照。

据我所知,没有“更快”或“更慢”的方式来存储浏览器检索的图像。

无论你做什么,都要确保在文件系统上启用了目录索引(你应该选择一个支持它的文件系统 – 但它们都是)

在实践中,例如ext3,这不是一个问题,因为它在新系统上认启用。 你可以通过使用tune2fs找到(阅读该男子)

有了这些类型的数字,你可能会或可能不会遇到你的服务器上设置的inode限制。 这可能是有问题的取决于谁控制那个盒子。

总的来说,我会想出一些方案把它们分成更易于管理的尺寸。 即使在一个大小的目录上运行ls也需要很长时间来对其进行排序和显示

相关文章

可以认为OpenFeign是Feign的增强版,不同的是OpenFeign支持S...
为进一步规范小程序交易生态、提升用户购物体验、满足用户在...
云原生之使用Docker部署Dashdot服务器仪表盘
本文主要描述TensorFlow之回归模型的基本原理
1.漏洞描述Apache Druid 是一个集时间序列数据库、数据仓库和...
内部类(当作类中的一个普通成员变量,只不过此成员变量是cl...