在MySQL中存储图像

时间:2009-08-10 12:26:08

标签: sql mysql vb.net

如何使用VB.NET 2005将图像存储和检索到MySQL数据库?

3 个答案:

答案 0 :(得分:3)

  1. 将其读入字符串变量。
  2. 将其存储在BLOB字段中。
  3. 不要将图像数据存储在 数据库,更好的做法只是存储一个独特的 指向实际图像文件的文件名,这将有助于减少数据库膨胀并使您不必获取大量记录。

答案 1 :(得分:2)

取决于图像尺寸

如果它们很大(超过一兆左右)并且你有很多它们或者它们是开放式的 - 那么最好存储在文件系统上并将该位置存储在数据库中。

优点:

  1. 更好的数据库增长特征
  2. 更容易进行增量备份
  3. 更容易使用分层存储(对于频繁使用的图像,存储速度快,对于不经常使用的图像存储速度慢)
  4. 可以随机访问部分文件(不需要阅读整个文件)
  5. 缺点:

    1. 难以做交易
    2. 需要管理的单独地点
    3. 需要管理的单独访问控制
    4. blob更容易编程
    5. 如果图像在几k范围内,并且你的数量有限,那么只需使用MemoryStream(与任何流一样保存)并将字节传输到blob字段。

      SQL Server为您提供两个世界中最好的文件系统字段类型(将blob外部化为文件,但其他方式就像blob一样)

      在其他字段中存储有关图像的额外信息也很不错 - 这样您就不必阅读图像blob以便用它做一些事情。例如:

      1. 尺寸
      2. 类型
      3. 如果是多页(如TIFF),页数
      4. 我在博客上写了关于数据库中图像的一些注意事项:

        http://www.atalasoft.com/cs/blogs/loufranco/archive/2007/12/03/images-in-databases-part-i-what-to-store.aspx

        http://www.atalasoft.com/cs/blogs/loufranco/archive/2007/12/04/images-in-databases-part-ii-web-images-are-random-access.aspx

        http://www.atalasoft.com/cs/blogs/loufranco/archive/2009/04/28/document-storage-database-blobs-or-the-filesystem.aspx

答案 2 :(得分:1)

使用BLOB字段类型并照常写入。请记住同时存储图像类型,当您想要显示图像时,必须具有此类型。