我的系统pipe理员告诉我,我们应该从服务器上删除旧的静态文件,并将它们存储在数据库中,而不是因为文件系统上的文件过多会影响系统的整体性能。 影响是否显着? 目前我们目录中有大约2万个文件,预计在未来几年有望达到10万个。 这是一个相对较新的Ubuntu LTS系统。 如果100,000不重要,那么数字是多less?
编辑:这是不同于一个ext3目录中的文件的最大数量,同时仍然可以接受的性能? 因为我不关心目录性能,而是关心系统上的文件数量达到任意数量时的整个系统性能。 在我的具体情况下,系统pipe理员认为,由于整个系统上的文件总数,Apache会放慢速度。
由于ext3在文件系统中处理文件的速度至less与在数据库中查找索引行一样快。 这被称为HTree(实际上,数据库中的许多索引仍然使用BTree)。
http://en.wikipedia.org/wiki/HTree
旧的系统会在1,000个文件中出现问题,因为search是线性的(从第一个文件开始,然后遍历整个目录find您感兴趣的文件)。
为什么使用数据库呢?
PRO
那么你只需要将数据库从一台计算机传输到另一台计算机(想想一个云系统…),特别是如果你想使用计算机之间的自动复制。
CON
您发送到数据库的所有数据库都通过networking! 这意味着一个巨大的瓶颈。 如果您不预见使用数据库的复制function,那么这对于避免使用数据库就足够了(对我而言)。 这将对您的系统产生巨大的影响。 直接使用文件系统,因为无论如何,数据库将做同样的事情:将数据保存到文件!
PS你的pipe理员似乎是从过去…
当启用dir_indexfunction时,PPS“ext3 HTree索引在ext3中可用。 – 我使用ext4,所以我不担心太多,虽然它可以closuresext4; 希望它是在您的服务器上打开…