【问题标题】:Is saving a video as longblob better or as a path?将视频保存为 longblob 更好还是保存为路径?
【发布时间】:2011-09-01 16:38:50
【问题描述】:

我正在用 php 和 mysql 开发一个电子项目网站。我在将视频另存为 longblob 时遇到问题。它的最小大小为 2MB。因此,每次管理员必须更新他的网页时,他都必须压缩他的视频。那不会很好。 是否可以将视频保存为路径?我在 C#.NET 中做过类似的事情,但我没有在 php 中尝试过。

【问题讨论】:

  • 疯狂猜测模式:“我在 C#.NET 中做过类似的事情”,您指的是 sql server 的 FILESTREAM 存储吗?
  • “视频作为路径”是否意味着,您只想存储一个简单的字符串,如“this/is/my/video.webm”?我会采用这个想法,而不是将视频内容存储在数据库中。这就是文件服务器的用途。
  • 我指的是 C#,我在解决方案资源管理器中创建了一个文件夹。出现打开对话框后,无论我选择什么路径,视频都保存在文件夹中,路径保存在 SQL Server 中
  • 你也可以用 php 做到这一点。参见例如docs.php.net/mkdirdocs.php.net/move_uploaded_file
  • 将它们存储在一个文件夹中,并将文件名放入数据库中。当您获取它们时,使用该文件名链接到视频

标签: php mysql


【解决方案1】:

每次管理员必须更新他的网页时,他都必须压缩他的视频

为什么?完全可以在不更改已经存在的 BLOB 的情况下更新数据库中的一行。

是否可以将视频保存为路径?

当然。 Blob 与文件是一种权衡,您必须根据应用程序的需求来决定。有关背景信息,请参见例如 this question

【讨论】:

  • 所以你的意思是..即使视频很大,保存也没有问题?
  • 是的,存储和检索大型 BLOB 对任何现代数据库来说都不是问题(对于非常大的数据库来说,这是否是一个好主意值得商榷,但 2MB 并不是那么大)。
  • 我有超过该大小限制的视频。
  • 这不是限制。 2MB并不是那么大。但如果您谈论的是 MySQL LONGBLOB,您可能需要将 max-allowed-packet 配置设置为更大的值以适应它。
  • 与任何其他列一样,使用经过mysql_real_escape_string 的字符串文字(或者,更好的是,使用参数化查询)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多