Database design 将图像存储到数据库中
这个问题与数据库/RDBMS有关,我对性能和记录处理知之甚少 如果我们需要存储与某些记录相关的图像,那么更好的选择(性能方面)是什么。无论是将图像作为字段存储到数据库中,还是维护自己的文件并将文件路径存储到数据库中 我认为当前的rdbms应该能够很好地处理它们自己的图像文件,我们可以依赖它们。但是,如果多个记录(或来自不同表格的记录)引用同一个图像,那么我认为,最好存储文件的路径,而不是图像本身Database design 将图像存储到数据库中,database-design,database-performance,Database Design,Database Performance,这个问题与数据库/RDBMS有关,我对性能和记录处理知之甚少 如果我们需要存储与某些记录相关的图像,那么更好的选择(性能方面)是什么。无论是将图像作为字段存储到数据库中,还是维护自己的文件并将文件路径存储到数据库中 我认为当前的rdbms应该能够很好地处理它们自己的图像文件,我们可以依赖它们。但是,如果多个记录(或来自不同表格的记录)引用同一个图像,那么我认为,最好存储文件的路径,而不是图像本身 期待数据库专家的选择。将图像存储在文件系统上,或者(更好的)存储在CDN上,或者类似于AmazonS
期待数据库专家的选择。将图像存储在文件系统上,或者(更好的)存储在CDN上,或者类似于AmazonS3的东西中。在RDBMS中只存储元数据(包括实际图像文件的位置)。微软研究院有一篇非常好的论文,名为 经过大量性能测试和分析,他们得出的结论如下:
- 如果图片或文档的大小通常低于256K,则将其存储在数据库VARBINARY列中更有效
- 如果图片或文档的大小通常超过1MB,则将其存储在文件系统中会更高效(使用SQL Server 2008的FILESTREAM属性,它们仍然处于事务控制之下,并且是数据库的一部分)
- 在这两者之间,这取决于你的使用情况
具有
FILESTREAM
功能的SQL Server修复了这一问题—您的文件仍保留在磁盘上—但SQL Server有一个“事务保护伞”,在SQL Server不知道(并允许)的情况下,无法删除或移动这些文件。是的,将图像存储在文件中。而数据库中的文件路径是一个很好的方法。