网络中的数据,图片,文字,视频的存储问题

图片:一般都是存储在分布式的文件系统上;
文字:一般是存储在数据库中的,并且采用主从表的模式,也即文本内容单独存在一个从表中;
视频:也是一般存储在分布式文件系统中;
数据:这是个大范围,什么都可以用”数据“形容,图片文件、文字、视频文件、文档文件等.....

剩下的要适当缩小下范围...一般对于存储在文件系统上的东西,一般都会把其链接信息存储在数据库中,比如访问某张图片,会先读数据库再去文件系统中读数据(备注:忽略缓存的作用)
 
说的简单点,wordpress或者类似的网站程序就类似一辆BUS,而数据库仅仅是一个记录系统。这两BUS长的是什么样子的是由类似WP的程序决定的,但是这辆BUS的内容比如坐了多少人,每个人有什么特征,叫什么,多重,多高等等,坐在什么位置等等都记录在数据库里。 

数据库仅仅是一条条的记录,比如某个乘客的特征是属于数据库的,但是这个乘客本身并不是数据库,比如制作网站会用到很多图片文件,这些图片文件保存于网站空间,数据库顶多记录这个图片用在什么位置,具体怎么呈现,但是文件本身并不包含在数据库,所以如果把这张图片删除,虽然数据库有这条图片的记录,但是在某个位置会直接显示个XX。
如果需要查询数据,首先查询memcached是否已经缓存了数据,如果缓存了,就从memcached获取值返回而不是查询数据库,如果返回一个undifined object,那么就去查询数据库,得到结果,然后保存在memcached里(不要忘记了这一步骤).如果更新了数据,那么就从cache里删除数据.
 
一般本地使用配置文件而网站使用数据库作为存储,其实本地也可以用数据库,比如 Sqlite。服务器也可以用文件,现在很多网站用文件加超大内存。

本地用文件,尤其是文本文件,一般是为了调试和分析方便。如果用数据库还必须有专门的读写工具。在桌面软件上比较麻烦。 

服务器用 DB 一般为了解决数据一致性和并发访问的问题。但是在 Twitter 和搜索这类对数据一致性要求不高的应用也可以采用文件(更时髦的是 NoSQL)。
posted @   火耳888  阅读(1086)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端
点击右上角即可分享
微信分享提示