Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用MySQL插入图像的最佳方法?_C#_Mysql - Fatal编程技术网

C# 使用MySQL插入图像的最佳方法?

C# 使用MySQL插入图像的最佳方法?,c#,mysql,C#,Mysql,我将为在线商店创建MySQL数据库。这家商店大约有3000种产品。每个产品有5张照片。 我为产品创建了表表(产品id、产品名称)和图像表(图像id、图像详细信息、产品id) 插入照片的最佳方式是什么? *我正在使用C#(桌面应用程序)作为GUI不要将图像保存在数据库中,这不是最好的方法。保存表中与产品相关的映像的路径。使用cloud Blob存储或文件系统,而不是保存在关系数据库中。由于性能、备份和可维护性,建议不要在数据库中存储大量大于1mb的图像 不过,如果您有一个小应用程序,并且确实确定要

我将为在线商店创建MySQL数据库。这家商店大约有3000种产品。每个产品有5张照片。 我为
产品创建了表
(产品id、产品名称)
图像
(图像id、图像详细信息、产品id)

插入照片的最佳方式是什么?
*我正在使用C#(桌面应用程序)作为GUI

不要将图像保存在数据库中,这不是最好的方法。保存表中与产品相关的映像的路径。

使用cloud Blob存储或文件系统,而不是保存在关系数据库中。由于性能、备份和可维护性,建议不要在数据库中存储大量大于1mb的图像

不过,如果您有一个小应用程序,并且确实确定要这样做,您可以将图像转换为字节数组并保存在MySQL BLOB字段中。查看下面的链接以获取示例:

检查:


尽管使用BLOB对象可以实现这一点,但这不是首选方法。您必须存储图像的位置(类似于其他大型文件),当查询结果打开时,使用该位置访问图像


请记住,您的图像会随着时间的推移而增加,因此,在实践中,我们应用一个目录层次结构,通常两个就足够了。可以使用图像名称的前两个字母,但是,这将是不平衡的目录结构。更好的方法是使用基于散列的随机化将文件均匀地分布在子目录上。可以找到一个例子(Java)。

最好的方法是不要这样做,关系数据库不能很好地处理大型二进制附件,它们会使备份复杂化,而且由于系统必须导航到多少层才能获取和返回图像数据,所以一开始效率很低。使用文件系统或对象存储,并引用存储在数据库中的映像。谢谢。你能写更多的细节吗?这取决于你使用的服务器端。客户端基本上是不相关的。我将把URL保存在Images表中。但是图像呢?我将把我的数据库放在托管公司。你可以通过上传将它们保存在你的托管服务器上。或者使用第三方云服务,如亚马逊,甚至像谷歌照片。。。