首页 > 解决方案 > 如何在mysql中保存大数据?

问题描述

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

mysql: Argument list too long

列内容的类型为长文本。

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)"`

有解决此问题的方法吗?

标签: mysqlshelldebianmariadb

解决方案


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

sh如果您在 MySQL 中使用该函数,您可以坚持使用LOAD_FILE,但我不推荐它用于任何重要的事情。

很多大文本文件

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

我想安全地保存在我的数据库中

请定义“安全”。“安全”,如防止旁观者?“崩溃安全”,在您的服务器死机后仍然存在吗?“防止更改”,与文件权限一样?其他?


推荐阅读