在LAMP站点上较长的目录路径/名称和URL的缺点是什么?
我试图尽可能高效地组织我网站上的图像,我热衷于使用许多嵌套目录,以便子目录没有超过1000个子目录。
在最坏的情况下,图像的存储看起来像这样:
./images/76/543/7654321/640/1.jpg
有这么多子目录与这样简单的目录相比,有什么严重的缺点吗?
./i/a7/c3/5e.jpg
我想服务器需要挖掘的子目录越多,需要的时间就越长,目录结构越长,URL就越长,所以HREF将在HTML文档中占用更多的空间。但这会带来多大的不同呢?假设我们扩展到数百万用户,这是我需要考虑的(短目录结构vs长目录结构)吗?
有关上下文,请查看此
谢谢!
在一个目录中有大量文件会使它变慢。你把它分开是对的。但是,您可以尝试通过在路径名中使用所有字母数字字符来减少长度。
如果你有:
/images/[a-z0-9]{3}/[a-z0-9]{3}/[a-z0-9]{3}.jpg
/images/abc/def/ghi.jpg
使用上面的代码,您可以存储101559956668416个图像。这看起来很荒谬,所以也许可以这样写:
/images/[a-z0-9]{2}/[a-z0-9]{2}.jpg
/images/ab/cd.jpg
使用上面的代码,您可以存储1679616个图像。这是一个合理的数字,但可能不足以满足您的需求。那么这个呢:
/images/[a-z0-9]{2}/[a-z0-9]{2}/[a-z0-9]{2}.jpg
/images/ab/cd/ef.jpg
允许2176782336(20亿)张图片,每个目录最多只能有1296个子文件/目录。
混合一些大写字母,甚至一些符号,你可以得到更少。就我个人而言,我会选择最后一个选项。这似乎是一个很好的平衡。