为什么不推荐在 MySQL 中直接存储图片、音频、视频等大容量内容?

Sherwin.Wei Lv7

为什么不推荐在 MySQL 中直接存储图片、音频、视频等大容量内容?

回答重点

MySQL 是关系型数据库,它设计的初衷是高效处理结构化和关系型数据,所以存储大容量的内容本身就不是它的职责所在,因此这方面的能力也不够。

应该将大容量文件存储在文件系统或云服务提供的对象存储服务中,仅在数据库中存储文件的路径或 URL 即可。

扩展知识

数据库本身性能问题

  • 数据库性能:存储和检索大容量的二进制数据(如图片、音频、视频)会显著增加数据库的 I/O 操作和处理时间,从而影响整体性能。
  • 查询性能:大容量的二进制数据会增加数据表的大小,导致查询性能下降。尤其是在涉及表连接或复杂查询时,性能影响更大。

可扩展性问题

文件系统可以通过分布式文件系统(如 Hadoop HDFS、Amazon S3)更容易地进行扩展,而数据库扩展则复杂得多。

权限控制问题

像文件系统和对象存储系统(如 Amazon S3、OSS 等)通常提供更灵活的访问控制和权限管理机制,适合处理大容量数据的存储和访问,例如访问的时效性等等,而 MySQL 不提供这些功能,需要我们应用程序额外开发。

Comments