qpi*_*ngu 3 php linux filesystems
我有一个简单的文件主机,它给文件一个唯一的ID,并将它们存储在一个目录中.我被告知这将在未来引起问题,我想知道我应该注意哪些事项,以确保它能够顺利地应用于未来和未来.
另外,是否存在通过发送头信息和readfile()来强制下载的性能问题?保留文件名并允许直接下载使用不是使用脚本会更好吗?
谢谢
您被告知的问题很可能与在同一目录中堆积成千上万个文件的性能影响有关.
要避免这种情况,请不要将文件直接存储在一个目录下,而是尝试将它们分散到子目录(存储桶)下.
为了实现这一点,看看ID(假设19873)您要保存的文件,并在其存储<uploads>/73/98/19873_<filename.ext>,其中73 ID % 100,98 (ID / 100) % 100等.
以上保证您<uploads>下面最多有100个子目录,下面最多100个子目录<uploads>/*.这将显着减少叶子上每个目录的文件数量.
两个级别的子目录是足够典型的,并且代表了在不浪费太多时间将目录或文件名解析为广度上的inode之间的良好平衡(当您在同一目录中查看太多文件名时会发生什么 - 尽管现代文件系统如此因为ext3这里非常有效)和深度(当你必须深入寻找你的文件的20个子目录时会发生什么).您也可以选择使用更大或更小的值(10,1000)而不是100.使用模100的两个级别对于100k到5M文件之间是理想的
在给定需要检索的文件的ID的情况下,使用相同的技术来计算文件系统上文件的完整路径.