如何在mysql中保存大数据?

时间:2019-02-10 15:43:17

标签: mysql shell debian mariadb

我有很多大文本文件,我希望将它们保存在数据库中。我写了一个可以保护少量数据的shell脚本,但是当我尝试使用一些大文件时,却出现以下错误:

mysql: Argument list too long

列内容的类型为longtext。

test.txt中包含60个单词,内容安全。 如果我使用austen-emma.txt(具有158167个单词)尝试相同的操作,则会得到描述的错误。

#!/bin/sh

content=`cat /srv/data/english_gutenberg_corpus/test.txt`

db_value=`mysql -u admin -padmin --database=bp12 -e "INSERT INTO db_connector_text (author, date, genre, content, title, language, source, wordlength) VALUES ('lel', '1970-01-16', 'NULL', '$content', 'Lyrische elemente', 'German', 'kp', 20)"`

是否有解决此问题的方法?

2 个答案:

答案 0 :(得分:1)

/bin/sh在命令大小上有限制,也许只有5KB。切换到其他处理数据的方式。无论最终采用哪种数据库方法,都需要学习一种编程语言(Perl,Java,VB等)来进行工作。

如果您在MySQL中使用sh函数,则可以坚持使用LOAD_FILE,但是对于不平凡的事情,我不建议您使用它。

  

很多大文本文件

您将如何处理文件?在网页上显示它们?用某些程序操纵它们?提供超链接吗?分析他们的单词结构?其他吗?

  

我想保护我的数据库

请定义“安全”。 “安全”,如免受围观者保护?服务器崩溃后仍然存在“崩溃安全”状态? “不受更改保护”,例如文件权限?其他吗?

答案 1 :(得分:0)

我不建议使用关系数据库来存储大大小小的文件。

最好使用NoSQL数据库,例如Google的Firebase等。

https://firebase.google.com