需要存储大量文本,图片,视频等数据,可以选用TiDB作为数据库吗?
图片、视频千万别存数据库。。。
没啥不可以。但是图片视频文件不要直接往数据库里扔
分布式文件系统应该是最好的,数据库存的是文件路径。
但是也没有谁规定,数据库不能存,以前也做过一个系统,将文件序列化以后存数据库。不过是小文件,证件照
可以存,但这并非数据库的擅长项
我们都是存oss上,数据库中存个链接。
非常感谢!我还想请教一个问题,传来一个文件,分布式数据库怎么知道该存到哪个文件夹下呢?分布式数据库怎么知道文件路径是什么呢?
如果是要将文件存储到数据库里的话,首先接收文件肯定是应用程序,应用程序应该有自己的逻辑的。
分为两种情况:
第一种:
落盘:接收的文件应该是有固定存储路径的,先通过sftp或者其他传输工具,已经将文件存储到本地,然后通知程序,应用程序读取文件,序列化后存储到数据库里。
第二种:
不落盘:应用程序接收文件传输请求后,直接将传输过来得到文件流存储到数据库里。
当然,其实不建议这么搞,应该有NFS/OSS这种共享存储或者分布式存储系统的,将文件存储路径存到数据库就可以了。
是不是需要先搞清楚这个文件是怎么传上来的,前端程序还是什么
感谢您的回复!看完大家的解答,我不准备把数据直接存数据库里。现在令我困惑的是,从一台服务器上拿到的文件数据,怎么才能存到磁盘上(需要自己写应用程序,固定存储路径,接收文件是吗?),然后分布式数据库怎么拿到这个文件路径的呢?
可以理解为从一台服务器上拿文件,怎么存到多台空闲服务器上,用分布式数据库来管理这些数据。
NFS/OSS这种共享存储是最简单的处理方式。
没有共享存储,那就只能另一种了,就是sftp,这个要自己写sftp实现类,对端服务器开通22端口,开放用户名,密码给你,你自己调用实现类,在对端服务端上读取,写入数据了。
我觉得这中间就是差一个程序,这个程序应该就是产生你说的“拿”这个动作的。要不就自己写,要不就只能看看有没有第三方的软件。
对象和NAS都比较合适呀。数据库做索引。
存储图片,视频可以在数据库中存地址,不用直接存在数据库里面
数据库里一般是存的文件的路径,我们的环境里图片、视频都是放对象存储里的。表里有个url字段。
此话题已在最后回复的 60 天后被自动关闭。不再允许新回复。