我们使用的称为Kentico的CMS在文件系统上存储媒体库文件,并且还在数据库中存储文件元数据(标题,描述等)的记录。当您使用媒体库控件列出这些项目时,它将从文件系统中读取文件以显示它们。从文件系统读取然后查询数据库是否更快?或者在媒体文件元数据库表上运行简单查询会更快吗?
假设:
查询类似于:
SELECT *
来自Media_File
在哪里FilePath LIKE'路径/到/当前/媒体/文件夹/%'
答案 0 :(得分:6)
简短的回答是,它取决于许多可变因素,但文件系统通常会比数据库快。
更长的答案是:在已知位置扫描本地文件系统通常很快,因为资源靠近家庭,计算机设计用于非常有效地执行这些操作。
然而,它是否比数据库更快取决于数据库实现,它所在的位置以及我们正在讨论的数据量。总的来说,DBMS经过优化,可以非常有效地存储和查询大型数据集,而“扁平”文件系统只能像硬件一样快速扫描驱动器。它们的速度有多快取决于实现(SqLite总体上不如MS Sql Server或Oracle那么快),通信方案(通过网络传输文件是计算机定期执行的最慢的事情;相比之下,命名管道提供非常快速的进程间通信),以及你投入多少硬件(带有SATA-RAID条带化的四核Xeon刀片服务器将比你的Celeron笔记本电脑快得多)。
答案 1 :(得分:2)