我希望能够使用Web服务将一个文件插入到远程Web服务器上的MYSQL数据库中。
我的问题是:什么类型的表列(例如varchar等)可以存储文件?在插入文件时,插入语句是否会有所不同?
我的问题是:什么类型的表列(例如varchar等)可以存储文件?在插入文件时,插入语句是否会有所不同?
MySQL类型文件大小:
然而,在大多数情况下,即使数据库支持它,我也不建议在数据库中存储大的字节块,因为它会增加整个数据库的大小并可能导致实际性能问题。您可以在此阅读更多有关此主题的信息。许多关心一致性性能的数据库甚至不允许您执行此操作。例如,AWS DynamoDB被认为在任何规模上表现极佳,但限制单个项记录为400KB。MongoDB允许16MB,这对我来说已经太多了。如果您愿意,MySQL允许全部4GB。但是,请再三考虑。您可以使用这些列类型存储大数据块的情况是-您具有小流量的数据库,并且您只想将所有内容保存在一个位置以实现更快的开发。例如,小公司的内部系统。
BLOB数据类型最适合存储文件。
其他答案会给你一个很好的想法,如何实现你所要求的....
然而
并不是很多情况下这是一个好主意。通常最好只在数据库中存储文件名,并在文件系统上存储文件。
这样你的数据库会更小,更容易传输,更重要的是备份和恢复速度更快。
你需要使用BLOB类型,它有TINY、MEDIUM、LONG和普通四种类型,根据你所需的大小选择其中的一种。
TINYBLOB 255
BLOB 65535
MEDIUMBLOB 16777215
LONGBLOB 4294967295
(in bytes)
插入语句比较正常。您需要使用fread
读取文件,然后对其进行addslashes
处理。