最近面试时,我被问到如果我要构建一个视频流服务,我会使用什么存储系统来存储视频数据。
我的解决方案是将实际视频存储在分布式文件系统(例如HDFS/S3)中,并将有关视频的元数据(HDFS路径、共享权限等)存储在关系数据库表中。这对我来说很合理,看起来是一个干净的解决方案。然而,面试官一直在追问为什么不能使用关系型数据库来存储实际视频本身(如blob数据)。我给出了一些我认为合适的理由 - 视频是文件,文件系统优化了更好地存储文件,文件系统缓存、读写性能等。但他反驳每一个理由:“你也可以用数据库做到...”。
是否有明确的原因,为什么视频作为文件存储在磁盘上比存储在mysql数据库中更好呢?
我的解决方案是将实际视频存储在分布式文件系统(例如HDFS/S3)中,并将有关视频的元数据(HDFS路径、共享权限等)存储在关系数据库表中。这对我来说很合理,看起来是一个干净的解决方案。然而,面试官一直在追问为什么不能使用关系型数据库来存储实际视频本身(如blob数据)。我给出了一些我认为合适的理由 - 视频是文件,文件系统优化了更好地存储文件,文件系统缓存、读写性能等。但他反驳每一个理由:“你也可以用数据库做到...”。
是否有明确的原因,为什么视频作为文件存储在磁盘上比存储在mysql数据库中更好呢?