1

我还没有看到任何可以在 SQL 中存储文件的数据类型。有没有类似的东西?我特别要说的是我想在我的表格中插入一个源代码。最好的方法是什么?它可以作为格式良好的文本存储在我的数据库中,也可以更好地(我真正想要的)将其存储为单个文件。请注意,我使用的是 MySQL。

4

4 回答 4

2

最好不要将文件存储在 SQL 数据库中,而是将文件的路径存储在服务器中或应用程序可以自行检索的任何其他 UNC 路径,并对其进行不必要的处理。

看到这个:https ://softwareengineering.stackexchange.com/questions/150669/is-it-a-bad-practice-to-store-large-files-10-mb-in-a-database

还有这个: 在 MySQL 数据库中存储大文件的更好方法?

如果您仍想将文件存储在数据库中。这是一个示例: http: //mirificampress.com/permalink/saving_a_file_into_mysql

于 2013-04-24T18:46:46.203 回答
0

您还可以使用有一些差异的 BLOB ( http://dev.mysql.com/doc/refman/5.0/en/blob.html )。通常我只是将文件存储在文件系统中,并在数据库中存储一个指针,这使得通过 HTTP 之类的服务返回它更容易一些,并且不会使数据库膨胀。

于 2013-04-24T18:42:35.470 回答
0

如果您可以序列化文件,您可以将其存储为二进制文件,然后在需要时反序列化 http://dev.mysql.com/doc/refman/5.0/en/binary-varbinary.html

于 2013-04-24T18:36:58.343 回答
0

仅当您需要在该代码中进行搜索时,将文件存储在表中才有意义。在其他情况下,您应该只存储文件的 URL。

如果要存储文本文件,请使用 TEXT 数据类型。由于它是源代码,您可以考虑使用 ASCII 字符集来节省空间 - 但请注意,这会在查询期间导致字符集转换,从而影响性能。此外,如果它是 ASCII,您可以使用 REGEXP 进行搜索(该运算符不适用于多字节字符集)。

要加载文件,如果文件与 MySQL 位于同一服务器上,则可以在 INSERT 中使用 FILE() 函数。

于 2013-04-24T23:52:42.547 回答