我有一个包含在BLOB字段一些照片现有的数据库。 Web应用程序我已经显示出来。
什么是做到这一点,考虑到服务器的维护及编码工作应激的最佳途径。
我能想到以下几点:
- “缓存”的斑到外部文件,并将文件发送到浏览器。
- 直接从数据库中每一个它的要求的时间阅读。
有些additionals事实:
- 我不能更改数据库并获取产品总数摆脱斑点的,只有在数据库中保存文件引用(就像好醇”接天),因为该数据库由这实际上需要斑点其他应用程序。
- 这些图像变化很少,即如果图像是在数据库中它主要是永远保持这种方式。
- 未来将有很多读访问到的图片,将显示按次10-100图片。 (根据用户的设置)
- 这些照片是relativly小,<500 KB
我建议你的这两个思想的组合:该项目要求的第一次从数据库中读取它。 但事后确保他们通过像鱿鱼缓存,因此你不必来检索他们所要求的每一次。
一个improtant就是用适当的HTTP缓存控制......这是,正确设置有效期,响应HEAD
请求正确(不是所有plattforms /网络服务器允许)...
缓存THOS斑点文件系统对我来说很有意义......更是这样,如果DB是另一台服务器上运行......但即使没有,我想简单的文件访问是便宜很多,不是通过管道将数据本地套接字......如果你这样做缓存数据库到文件系统,你可以最有可能配置任何Web服务器做好缓存控制你...如果不是这种情况就,你也许应该要求,有一个字段,以指示图像的最后一次更新,让你的缓存更有效...
格尔茨
back2dos
文章来源: What's the best way to send pictures to a browser when they have to be stored as blobs in a database?