将图片以传统的文件形式存储在服务器上。
将图片存储在数据库中不是高效的,可能会导致更多的麻烦而不值得。将图片存储在文件夹中(甚至可以是它们自己的小文件夹),并像往常一样链接到它们。这将使用户轻松缓存图像,并对您的服务器影响最小。
从文件结构中提供文件比查询数据库、提取信息、告诉用户数据是什么以及每秒/分钟/小时/天执行多少次要少得多。
另一方面,如果这些是大型图像,占用了大量空间,您可能需要考虑动态生成它们,直到您能够负担更多驱动器空间,但如果可以的话,我建议选择第一种选项。
最后(也可能是最重要的——打破常规思维),我不知道这些图像的情况,但您还可以考虑其他创建它们的方法。例如,它们可以被平铺吗?而不是存储数百个图像,您是否可以从10个部分制作这些数百个图像?您甚至可以将它们发送给客户端,而无需将它们连接起来,只需将它们排列在页面上,使它们看起来像是一个图像——但这只是一种初步的想法。
我不是在打广告,但目前有一种非常有益的存储方式,叫做GridFS。
它基本上是一种将数据放入MongoDB的方法(我相信其他数据库也有自己的存储机制)。
主要的缺点是速度较慢,但主要的优点是它非常容易进行分片和在网络(甚至全球范围内)分发您的图像。您甚至可以将它们ping到CDN上一段时间,以使它们变得更快。
然而,我应该说这是针对大型网站的。您的网站听起来像是一个普通的个人博客类型项目,所以我建议只需将图像存储在服务器上的目录中即可。
然而,即使始终从目录中提供服务也可能变得繁琐,因此您可以采取某些缓存机制,例如在图像上永不过期的标头,以确保浏览器尽可能长时间地缓存它们。还可以在Web服务器(如Apache)中缓存它们,因为我怀疑您不想始终直接从存储它们的目录中提供服务,而且在您偶尔这样做时,您会希望防止恶意人员触碰您的图片,因此作为一种预防措施(以及服务器配置),您可能会从服务器端语言或其他方式提供未缓存的图像。
使用任何GD工具都会极大地占用负载和CPU,因此您应该尽可能少地使用它们,因为在这种情况下,几兆字节的文件存储比新实例更便宜,因为您的CPU受到超大图像的限制。
在Google上还有更多建议和注意事项。例如,从Google直接获取:http://developer.yahoo.com/performance/rules.html/