在本地电脑做了个小测试
在 10000 个文件里面找其中某个文件 跟 在 30 个文件里面找其中某个文件
t_10000 = 程序执行后的 Time.now - 程序开始执行的 Time.now t_30 = 程序执行后的 Time.now - 程序开始执行的 Time.now
我以为 10000 应该是一个很巨大的文件数了 但发现 t_10000 跟 t_30 的时间相差很微小
文件要达到多少时,才会感觉到查询比较慢呢
那么你要知道查找文件的原理。文件信息是放在磁盘分区的 inode 里面,inode 的数据结构是树,每个节点放置了好多的文件信息。预估一下,一个文件需要消耗的 inode 字节猜测是 20B,那么 1 万个就是 200K 的信息。。。不多嘛。
不是查询效率问题,是单个目录有文件个数限制。所以才会有 ID Partition 这东西。
https://signalvnoise.com/archives2/id_partitioning.php