新手问题 文件查询的疑惑

luffycn · 2014年10月05日 · 最后由 hooopo 回复于 2014年10月05日 · 1187 次阅读

在本地电脑做了个小测试

在 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

需要 登录 后方可回复, 如果你还没有账号请 注册新账号