Привествую!
Представим, что у нас есть база данных документов в формате HTML. У каждого документа есть ряд характеристик, которые я храню в базе данных: название, дата создания. справочники повторяющихся элементов,...
Стоит ли хранить HTML документ в среднем размеров 1-2 страниц формата А4, приблизительно? Ну убьет ли это скорость базы данных? Думаю, что фильтрация по по атрибутам для выборки листа документов более важно, и не стоит отегащать огромными объемами текста базу данных?
Возможно стоит хранить в базе ссылки на файлы в которых храниться сам HTML? Как лучше поступить. Таблица документов сейчас примерно около 1,000,000, но конечная цифра будет примерно 30 млн.
Как лучше поступить?
Когда говорят о базе данных, то 99% имеется в виду классическая реляционная БД типа Postgres/MySQL e.t.c.
Такие базы данных создавались для эффективного соединения кортежей и сортировок. Длина DataRow
при этом обычно не больашя (до 8К целый блок таких строк). Эта цифра имеет корни еще в 20м веке.
И если заставить их хранить html (обычно 5-100К) то такая деятельность может быть не очень
удобная для БД. Это как микроскопом гвозди забивать. Очень умная система будет использоваться как
файловое хранилище. Возникает идея - просто взять что-то ориентированное на файлы. Например S3,
BlobStorage, GoogleDrive. Это было-бы дешевле с точки зрения стоимости владения и бэкап делать
проще.
Я понимаю что мы живем в странное время, когда вместо расчета в калькуляторе - запускают гугл или вместо
расчета в MathCad спрашивают ChatGpt, но все-таки программист должен быть немного хозяйственник
и должен брать простые и дешевые решения там где они достаточны.
Валентин Бируля, дьявол как всегда кроется в деталях. Говоря о "многих функциях" мы можем овер-инжинерить любую задачу. Я-бы предпочел идти от простого к сложному. Так - проще обсуждать задачу. Иначе мы запутаемся.
mayton2019, Валентин Бируля, для мускуля неприятно, а постгресу по барабану — он жирные значения хранит отдельно.
В постгресе есть какое-то сжатие данных из коробки, есть форки типа PostgrePro где сжатие куда более эффективное, можно класть в базу уже пожатые данные. Ну и в зависимости о того, могут ли они дублироваться, стоит ещё глянуть в Clickhouse.
batyrmastyr, я-бы не стал писать через запятую MySQL и Clickhouse. Это уж слишком разные системы по своим целям и по задачам. Все равно что корабль и самолет.