【问题标题】:How to store .txt files MySQL database?如何存储 .txt 文件 MySQL 数据库?
【发布时间】:2011-03-11 21:49:30
【问题描述】:

我可以将数据文件(例如 txt 文件)存储到 MySql 服务器吗?如果可以,如何存放?

【问题讨论】:

  • 数据库不是用来存储文本文件的,这就是你的文件系统的用途。
  • 当然,如果您在恰好运行 MySQL 的服务器上具有文件写入权限,您可以向其写入文本文件。不过,我不认为这就是你的意思。你想完成什么?
  • 什么样的文本文件?
  • 我正在尝试用数据(整数)填充txt文件并将整个文件存储到数据库中;我更喜欢使用这些文件,因为我有很多数据要以非常小的间隔存储(每 0.4 秒我必须用大量数据查询数据库)我知道文件系统可以做到这一点,但我想要那个网络上所有用户都可以访问的文件..
  • 您的问题含糊不清。有两种(三种?)完全不同的方式来解释您的问题,并且鉴于描述有限,任何一种都可能是正确的。请指定您希望数据以何种格式存储在数据库中。您只是想要一个透明的 blob 还是想要结构化数据?

标签: mysql database database-design


【解决方案1】:

您可以使用LOAD DATA INFILE 读取文件的内容并将其以结构化格式存储在数据库中的表中。

这比在客户端读取和解析文件然后使用多个 INSERT 语句要快得多。

例子:

LOAD DATA INFILE 'data.txt' INTO TABLE db2.my_table;

【讨论】:

    【解决方案2】:

    可以,但最好将它们存储在文件系统中,并在数据库中存储文件的路径。

    有一些 SO 帖子讨论了这个问题:

    【讨论】:

    • 我知道文件系统可以做到这一点,但我希望网络上的所有用户都可以访问该文件......并且我希望避免每 0.4 秒查询一次数据库服务器超过30 分钟……这可能是集中式数据库最糟糕的解决方案
    【解决方案3】:

    当然可以。 我建议从您的文件中读取数据,然后将其保存在您的数据库中,我会在文本字段中说。

    您可以使用this 之类的东西来获取文件的内容:

    $file = file_get_contents('./yourfile.txt');
    

    然后插入

    Insert into myTable VALUES (mytextfile = $file)
    

    【讨论】:

      【解决方案4】:

      我们在这里讨论了多少文本?如果没有那么多文本,您可以只将文件的内容存储在数据库中。

      您还可以将文件本身存储为 BLOB。 http://dev.mysql.com/doc/refman/5.5/en/blob.html

      如果您要处理许多文件,最好将文件存储在服务器上,并使用数据库中的文件路径。

      【讨论】:

        猜你喜欢
        • 2011-04-16
        • 1970-01-01
        • 2012-11-22
        • 1970-01-01
        • 2011-01-06
        • 1970-01-01
        • 2011-04-14
        • 2013-08-05
        • 2012-03-17
        相关资源
        最近更新 更多