LAMP 站点上长目录路径/名称和 URL 的缺点是啥?
Posted
技术标签:
【中文标题】LAMP 站点上长目录路径/名称和 URL 的缺点是啥?【英文标题】:What are the downsides of longer directory paths/names and URL's on a LAMP site?LAMP 站点上长目录路径/名称和 URL 的缺点是什么? 【发布时间】:2011-10-16 06:19:06 【问题描述】:LAMP 网站上较长的目录路径/名称和 URL 有什么缺点?
我正在尝试尽可能高效地组织我网站上的图像,并且我热衷于使用许多嵌套目录,这样子目录的子目录就不会超过 1,000 个。
在最坏的情况下,图像会像这样存储:
./images/76/543/7654321/640/1.jpg
拥有如此多的子目录与像这样更简单的东西相比有什么严重的缺点吗:
./i/a7/c3/5e.jpg
我想服务器要挖掘的子目录越多,时间就越长,目录结构越长,URL就越长,所以HREF占用的空间就越大html 文档。但这会有多大的不同呢?假设我们扩展到数百万用户,这是我需要考虑的事情吗(短目录结构与长目录结构)?
有关上下文,请查看this。
谢谢!
【问题讨论】:
正如yi_H所说,不用管它,文件跨目录的分布比名字的长度更重要。 @afuzzyllama:感谢您的意见。由于跨目录的分布与我想要使用的方法相同,这是否意味着即使目录名称的长度更长并且使用了额外的子目录也可以? 我不确定,但如果您真的担心性能,您应该尝试运行一些基准测试。 @afuzzyllama:我确实运行了基准测试,以计算 php 中的目录结构需要多长时间,以便根据用户 ID 知道要查找的图像,并且我提供的方法比散列更快基于方法... @afuzzyllama:但是,我注意到使用额外的子目录可能会减慢速度,所以我不确定要采用哪种方法,我很难得到任何人的直接答案(因此我在第一篇文章之后创建了第二篇文章)......也许我没有得到直接答案,因为没有一个,这取决于,在这种情况下我应该使用我提到的方法并继续前进,因为它更方便?你怎么看?再次感谢。 【参考方案1】:在一个目录中有大量文件可能会使其变慢。你把它分开是对的。但是,您可以尝试通过在路径名中使用所有字母数字字符来减少长度。
如果你有:
/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 个子文件/目录。
混入一些大写字母,甚至一些符号,你可以少用一些。 我个人会选择最后一个选项。这似乎是一个很好的平衡。
【讨论】:
感谢freshwire。但是,在路径中使用额外的子目录和更长的目录名称具体有什么缺点呢?我问的原因是因为使用我想要使用的方法,它使组织用户文件变得非常简单,特别是不同大小的用户相册和图像,所以我试图确定使用更长和额外目录的缺点以确定是否值得。请告诉我,再次感谢!以上是关于LAMP 站点上长目录路径/名称和 URL 的缺点是啥?的主要内容,如果未能解决你的问题,请参考以下文章