回答 OP 问题。作为静态文件,直接通过磁盘通过网络服务器。它们只有 100 像素,非常适合 Web 服务器的内存缓存。几乎所有的 Web 服务器都有大量的信息、缓存策略、配置、操作方法。
Infact - 就用户体验(您所指的图像速度)而言,最佳选择是使用支持 CDN 的对象存储。时期。
作为静态存储选择的“数据库”非常昂贵——就所有开销处理、数据库负担、财务和技术债务而言。
几件事,来自几个答案
Google 图像和 Yahoo 图像使用 base64 并内联提供图像。检查源代码,你会看到它。
不,他们绝对不会。图像主要来自静态文件“网络服务器”,特别是 gstatic.com:例如https://ssl.gstatic.com/gb/images/p1_2446527d.png
紧凑 - 你有一个文件。同样,如果文件被压缩,base64 图像几乎被压缩到普通图像的大小。
所以实际上,一点优势都没有,加上需要压缩的处理?
在单个请求中检索页面。同样,多个并行请求而不是单个更大的负载。
当 100000 个用户在一个负载非常大的网站上请求 200 张图片时会发生什么。服务器的磁盘,返回图像应该崩溃。您仍将发送相同数量的数据,但连接时间更长,并且会给您的数据库带来压力。其次,工厂站点运行具有 100000 个并发连接的可能性......即使是这样,如果您在单个服务器上运行这一切,您就是一个愚蠢的管理员。
通过将图像(二进制 blob 或 base64)存储在数据库中,您所做的一切都会为数据库增加巨大的开销。要么,你有大量的 RAM,要么你通过数据库的查询无论如何都会从磁盘上掉下来。而且,如果您确实拥有如此无限的 RAM,那么从 Ramdisk 上提供 bin 图像 - 理想情况下,通过替代专用的、轻量级的 Web 服务器静态文件和缓存优化,在子域上配置,将是最快、最轻的负载!
远期规划?到目前为止,您只能扩大规模,并且扩大数据库的成本很高(相对而言)。你说的磁盘再次将“sp
在这种情况下,您为 100000 个并发用户提供 100 张图像,您的图像服务应该是 CDN 对象存储的域。