Mysql 我应该将varbinary文件长度设置为适合文档的长度

Mysql 我应该将varbinary文件长度设置为适合文档的长度,mysql,Mysql,在MySQL 5.6数据库中,我需要创建一个表来存储可变长度的文档。文档将包括PDF文件、图像文件,甚至视频文件等。一些文档将很小,如两页PDF或gif文件,而其他文档可能非常大,如教科书中的PDF或两小时的视频。在插入数据库之前,每个文档都将转换为java中的字节数组。hibernate将字节数组映射到下面sql中定义的documents表中的content字段。在下面的创建表代码中定义内容字段时应该使用什么大小设置 CREATE TABLE documents ( id int(4)

在MySQL 5.6数据库中,我需要创建一个表来存储可变长度的文档。文档将包括PDF文件、图像文件,甚至视频文件等。一些文档将很小,如两页PDF或gif文件,而其他文档可能非常大,如教科书中的PDF或两小时的视频。在插入数据库之前,每个文档都将转换为java中的字节数组。hibernate将字节数组映射到下面sql中定义的documents表中的content字段。在下面的创建表代码中定义内容字段时应该使用什么大小设置

CREATE TABLE documents (
   id int(4) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
   name varchar(100),
   description varchar(200),
   filename varchar(100),
   content VARBINARY(length?),
   contentType varchar(100), 
   created timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
)

改用水滴。这样,您就不局限于固定数量的字符,而只局限于特定blob类型的基本大小限制。@MarcB谢谢。有人告诉我,目前的做法是使用字节数组而不是BLOB。这是真的吗?我可以将java/hibernate中的字节数组直接插入MySQL blob字段吗?我不会将文件存储在数据库中,而是将它们存储在文件系统中,并将元数据(包括文件路径)存储在数据库中。@MikeW谢谢。将文件保存在文件系统中不需要我编写大量代码来锁定其他应用程序对文件系统中文件的操作吗?比如阻止其他应用程序重命名、重新定位或删除文件?@CodeMed,如果你有很多恶意的、行为不好的应用程序并且没有用户安全,也许。通常,只要在具有适当权限的目录中定位文件就足够了。如果您在web环境中,请在web根目录之外找到文件,并使用简单的脚本为其提供服务。