Answer the question
In order to leave comments, you need to log in
Does this method of storing texts in the form of archives have the right to optimize the speed of work?
Есть идея сделать сайт, где будет много текстов (объявления о работе), сайт будет парсить много источников, по этому будет оч оч много текстового контента. БД будет иметь миллионы записей.
Если хранить эти тексты с описанием вакансий в БД то она очень быстро разрастается и БД начинает подтормаживать....
Есть вариант решения: Хранить в БД только название вакансии и параметры для поиска, а описание хранить в ZIP архивах.
Принцип работы будет такой:
При запросе к информационным страницам (списки) будет браться информация из БД, а при переходе к полному тексту вакансии - уже из файла.
Использовать собираюсь ВПС от ЦифровогоОблака на ССД дисках не очень дорогой (20 уе в мес, 2GB memory, 2 CPU, 40GB SSD)
Возник ряд вопросов:
1) Имеет ли смысл хранить текстовую информацию в файлах, ведь, по идее, это ССД и читаться из файла будет тоже быстро?
2) Имеет ли смысл эти файлы архивировать, ведь файлы не большие и архивированный файл все равно будет занимать примерно столько же места?
3) Имеет ли смысл разбивать архивы по папкам/подпапкам - чтобы не было очень много файлов в одной папке и не тормозило (помню по теории *никсовых систем что нельзя много миллионов файлов в одной папке хранить)?
4) Вообще такое решение имеет право на жизнь? Отговорите меня от него...
5)Стоит ли сжимать файлы или хранить как есть?
Я не Яндекс и кластеров под сайт с посещаемостью в 200 человек я покупать не буду и как сделать это ПРАВИЛЬНО я знаю))) Но хочется сэкономить...
Answer the question
In order to leave comments, you need to log in
Does it make sense to store textual information in files, because, in theory, this is an SSD and it will also be read from a file quickly?
Имеет смысл использовать базу данных, умеющую их сжимать. Например MongoDB сжимает данные примерно в 2 раза от их размера на диске при использовании WiredTiger и полнотекстового индекса. Не знаю, как с сжатием дела в MySQL или PostgresQL. Наверняка что-нибудь уже есть.
Для сайтов о работе поиск вакансий критически важный функционал, от работы которого полностью зависит успешность вашего проекта.
Я не занимаюсь рекламой MongoDB. Я использую ее уже на протяжении 3-х лет в продакшене под серьезной нагрузкой и знаю ее сильные стороны.
По поводу базы - если очень хочется, можете архивировать и хранить архивированные файлы прямо в том же MySQL. Просто когда будете вытаскивать данные при поиске, не делайте SELECT *
Выбирайте только требуемые поля. И про индексы не забудьте.
1) Имеет ли смысл хранить текстовую информацию в файлах, ведь, по идее, это ССД и читаться из файла будет тоже быстро?да, стразу в гзипе с nginx.org/en/docs/http/ngx_http_gzip_static_module.html
2) Имеет ли смысл эти файлы архивировать, ведь фалы не большие и архивированный файл всеравно будет занимать примерно столько же места?да
3) Имеет ли смысл разбивать архивы по папкам/подпапкам - чтобы не было очень много файлов в одной папке и не тормозило (помню по теории *никсовых систем что нельзя много миллионов файлов в одной папке хранить)?нет
5)Стоит ли сжимать файлы или хранить как есть?просто для отдачи - сжимать, для поиска и обработки - не сжимать и хранить в бд
быстро разрастается и БД начинает подтормаживатьмда
1) Имеет
2) Не архивировать
3) Это на вкус и цвет
4) можно было бы "запаковать2 часть информации, например табл1:
01 - повар
02 - сторож
табл2:
01 - Москва
02 - Питер
и т.д.
сам файл именовать: 01-01.txt или 02-01.txt
При поиске можно уже "генерировать имя файла".
5) не стоит хранить в zip
6) чтобы боты не порушили сайт использовать в robots.txt директиву Crawl-delay
Есть вариант решения: Хранить в БД только название вакансии и параметры для поиска, а описание хранить в ZIP архивах.
COMPRESSION
:Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question