Как сохранить большие данные в MySQL? - PullRequest
0 голосов
/ 10 февраля 2019

У меня много больших текстовых файлов, которые я хочу сохранить в своей базе данных.Я написал сценарий оболочки, который может защитить небольшое количество данных, но когда я пробую его с некоторыми большими файлами, я получаю следующую ошибку:

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 голосов
/ 10 февраля 2019

/bin/sh имеет ограничение на размер команды, возможно, всего 5 КБ.Переключитесь на другой способ работы с данными.Независимо от того, какой подход к базе данных вы в конечном итоге выберете, вам нужно будет выучить язык программирования (Perl, Java, VB и т. Д.), Чтобы выполнить работу.

Вы можете придерживаться sh, если используете *Функция 1005 * в MySQL, но я не рекомендую ее для чего-то нетривиального.

много больших текстовых файлов

Что вы будете делать с файлами?Показать их на веб-странице?Управлять им какой-нибудь программой?Предоставить гиперссылки на них?Анализировать их на предмет структуры слова?Другое?

я хочу сохранить в своей базе данных

Пожалуйста, укажите "безопасный".«Безопасный», как в защищенном от посторонних виде?"Сбой безопасности", как все еще там после того, как ваш сервер умирает?"Защищено от изменения", как с правами доступа к файлам?Другое

0 голосов
/ 10 февраля 2019

Я бы не рекомендовал использовать реляционную базу данных для хранения файлов большого размера.

Лучше всего использовать базу данных NoSQL, такую ​​как Google Firebase и т. Д.

https://firebase.google.com

...