В базе данных MySQL я использую поля BLOB
для хранения сжатых данных из потенциально длинных текстовых строк, которые я иногда хочу отображать пользователям моего веб-приложения, но которые никогда не будут использоваться для поиска или чего-либо ещеОсновная идея заключается в экономии места на диске.
Я пытаюсь заполнить свои таблицы, используя LOAD DATA
и файлы tsv.Проблема в том, что я использую табличные файлы, содержащие текст , но один из столбцов (BLOB
один) необходимо сжать.
Я попробовал следующее, но безуспешно.В этом примере файл table_name.tsv
tsv содержит данные, которые я хочу вставить в table_name
, а текст, который я хочу сжать, находится в столбцах col4
.
mysql -h <host> -u <user> -p <pwd> <db_name> --execute="LOAD DATA LOCAL INFILE 'table_name.tsv' INTO TABLE table_name(col1, col2, col3, @col4_comp_data) SET col4=COMPRESS(@col4_comp_data) FIELDS TERMINATED BY '\\t' LINES TERMINATED BY '\\n' IGNORE 1 LINES; SHOW WARNINGS"
Я получил ошибку:
ERROR 1064 (42000) at line 1: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'FIELDS TERMINATED BY '\t' LINES TERMINATED BY '\n' IGNORE 1 LINES' at line 1
Есть идеи, можно ли сжимать данные при загрузке с помощью LOAD DATA
?