版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章原始出版、作者信息和本声明。否则将追究法律责任。http://blog.csdn.net/mayongzhan - 马永占,myz,mayongzhan
一个文件夹下的文件数量超过一定时就会降低检索速度.
在一个网站中的图片如果都存在一个文件夹下,如果文件数量多了.就会影响图片的访问.
解决的方法.有很多.只举两个
将图片按日期分部.这个和新闻内容的存储很像.不过缺点就是文件会重复.
今天和昨天都上传了一个同样的图,那么就会存储两次.有人会说也可以判断,如果存在就不存储.这样也会带来问题.就是判断的时候会有系统开销.
还有种方法就是散列.通过md5_file来读取到该文件的md5,然后根据前几位建立文件夹.看情况是分几层建立... 0d\9b\d85\1bc82f3c7f2f758b4672e9382 这个是分了三层,在三个文件夹下才是文件,连在一起是这个文件的md5.得到md5值这个是要有系统开销的.而且后面没有扩展名.
存储效率
|
判断是否重复
|
读取效率
| |
日期
|
高
|
不易
|
高
|
散列
|
低
|
容易
|
低
|
可以看出来散列的唯一目的就是降低重复.
如果你的服务器少,钱少,买不起大硬盘,那么就使用散列,如果可以有很大的空间不考虑重复,也能解决多服务器的问题,那么就用日期.
当然除了这两种方法之外还有很多解决文件数量多造成访问速度降低的方法...比如如果是允许用户上传图片的话,就可以使用用户名作为文件夹.可以这么用:
比如一个用户名MyZMyZ马永占,这样就可以根据前两位作为一级文件夹,第三四位作为二级文件夹.这样就成了:My/ZM/文件名.gif,当然这样就需要用户名最短是4位.
比如一个用户名MyZMyZ马永占,这样就可以根据前两位作为一级文件夹,第三四位作为二级文件夹.这样就成了:My/ZM/文件名.gif,当然这样就需要用户名最短是4位.
网站的架构是很需要钻研的..v