【问题标题】:MySQL - Define max size of imageMySQL - 定义图像的最大大小
【发布时间】:2022-01-07 15:52:01
【问题描述】:

我从许多网站上了解到BLOB 用于保存图像的类型,例如here。因此,考虑到常规BLOB 的最大大小为 65KB,更大的为 16MB,那么保存最大图像的最佳方法是什么。 100KB?我应该选择MEDIUMBLOB 并将其限制为最大 100KB 吗?如果是,这是否会影响数据库在未使用MEDIUMBLOB 大小的保留空间方面的实际大小?我的意思是,如果MEDIUMBLOB保留了16MB的数据库空间,那么当只上传100KB的图片时,保留的空间会不会被使用?还是我理解错了?

【问题讨论】:

  • 要使用的大小取决于您的应用程序的要求。如果您知道该值将始终适合 mediumblob,则可以使用它。但是,听起来更大的blob 可能更安全。
  • 图片的最大大小总是100KB,但正常blob最大65KB,不适合,所以应该选择mediumblob。我重要的是这个选择是否会影响最后的数据库大小,因为它保留了 16MB,如果这个(16MB - 100KB)大小为空并保留,或者它将采用图像的实际大小而不保留额外的,我无法在互联网上找到永远不会使用的空间:)
  • MySQL mediumblob 为您的 blob 保留多达 16 MB 的存储空间。 MySQL 仅使用存储 blob 所需的内容,以及一些寻址开销和磁盘扇区边界舍入。出于您的目的,MySQL 会在不保留额外空间的情况下获取 blob 的实际大小。

标签: mysql sql


【解决方案1】:

选择较大的BLOB(或text)类型进行存储会产生少量开销。但是,请记住,您已经存储了 100 KB 的数据,因此另外一个或两个或三个或四个字节可以忽略不计。可能甚至无法测量。

选择最适合您需要存储的数据的数据类型。如果性能成为问题,那么请考虑一下。通常过早的优化只是过早的:它不是优化,它是未来发展的障碍。

我并不是在为没有意义的事情争论——不要将text 用于三字符代码。但是在担心由于您选择的 blob 类型而导致大小增加不到 0.01% 之前,您会遇到很多很多其他的性能问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-05-04
    • 2013-11-25
    • 1970-01-01
    • 2020-07-15
    • 2011-04-21
    • 1970-01-01
    • 1970-01-01
    • 2015-06-22
    相关资源
    最近更新 更多