我还没有看到任何可以在SQL中存储文件的数据类型。有类似的东西吗?我特别谈论的是我想在我的表中插入源代码。这样做的最佳方法是什么?它可以作为格式良好的文本存储在我的数据库中,也可以更好(我真正想要的)将其存储为单个文件。请注意我正在使用MySQL。
答案 0 :(得分:2)
最好不要在SQL数据库中存储文件,而是在服务器中存储文件的路径,或者应用程序可以自行检索的任何其他UNC路径,并使用它来执行任何不必要的操作。
并且: Better way to store large files in a MySQL database?
如果您仍想将文件存储在数据库中..这是一个示例: http://mirificampress.com/permalink/saving_a_file_into_mysql
答案 1 :(得分:0)
如果您可以序列化文件,则可以将其存储为二进制文件,然后在需要时进行反序列化 http://dev.mysql.com/doc/refman/5.0/en/binary-varbinary.html
答案 2 :(得分:0)
您还可以使用有一些差异的BLOB(http://dev.mysql.com/doc/refman/5.0/en/blob.html)。通常情况下,我只是将文件存储在文件系统中,并将数据库中的指针存储在数据库中,这样可以通过类似HTTP的方式将其提供回来,并且不会使数据库膨胀。
答案 3 :(得分:0)
如果您需要在该代码中进行搜索,则仅将文件存储在表中才有意义。在其他情况下,您应该只存储文件的URL。
如果要存储文本文件,请使用TEXT数据类型。由于它是源代码,您可以考虑使用ASCII字符集来节省空间 - 但请注意,这会在查询期间导致字符集转换,这会影响性能。此外,如果它是ASCII,您可以使用REGEXP进行搜索(该运算符不适用于多字节字符集)。
要加载文件,如果文件与MySQL在同一服务器上,则可以在INSERT中使用FILE()函数。