Большая база MySQL. Это плохо?

12
A
На сайте с 07.12.2008
Offline
13
1756

Здравствуйте! Собираюсь сделать рефератный сайт. Рефератов там будет порядка 30К. Реферат можно будет посмотреть на сайте, и скачать себе. Так вот... как мне хранить текст реферата? Записывать в базу MySQL? Так при таком раскладе база у меня получится очень большая (далеко за 1Гб, а может и 2). Это очень критично? У меня просто еще не было опыта работы с такими большими базами.

Второй вариант. У меня все рефераты в файлах *.doc в zip-архивах. Может текст вытягивать прямо с этого файла? Но так может быть нагрузка на сервер еще больше. Ведь для этого нужно разархивировать файл, потом считать его. А если народу на сайте будет много...

Вобщем каким образом мне поступить? Как лучше всего будет для сервера?

Ghost Bear
На сайте с 01.07.2009
Offline
28
#1

"Кэшируй" разархивированные рефераты где-нибудь. Если надо где-то выводить "кусочек" реферата (для предпросмотра юзеру\индексации пс), то все "кусочки" придется заранее выделить и где-то хранить.

Пишу продвинутый веб-софт и автоматизирую сео-задачи на партнёрских условиях. Ваша тема + Мой код = Совместный успех. Велком в ЛС.
pelvis
На сайте с 01.09.2005
Offline
345
#2

alibabaevich, в БД не зря есть поле "формат". Ставьте longtext, влезет 2 Гб

Продаю вывески. Задарма и задорого (https://www.ledsvetzavod.ru/)
DeveloperRu
На сайте с 27.02.2009
Offline
72
#3

самый лучший вариант - это импортировать только тексты (слова не короче 4х символов без сохранения форматирования абзацев, таблиц и тп) в базу данных для того, чтобы дать возможность пользователям искать по рефератам + выводить 100-150 слов из реферата в качестве предпросмотра

дополнительно к этому необходимо хранить рефераты в готовых зип-архивах для скачивания пользователями.

получается дублирование информации, но, имхо, по-другому будет хуже.

Ответы на вопросы (http://telenok.com)
A
На сайте с 07.12.2008
Offline
13
#4
pelvis:
alibabaevich, в БД не зря есть поле "формат". Ставьте longtext, влезет 2 Гб

А на производительность базы это никак не повлияет?

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

Слава Шевцов
На сайте с 23.07.2005
Offline
370
#5
alibabaevich:
Вобщем каким образом мне поступить? Как лучше всего будет для сервера?

Все тексты рефератов вынести в отдельную таблицу с двумя полями: id и text. Текст реферата лучше скомпрессировать. И никаких проблем с хранением данных и со скоростью у Вас не будет.

Неизменность точки зрения неизменно порождает иллюзию понимания.
A
На сайте с 07.12.2008
Offline
13
#6
Слава Шевцов:
Текст реферата лучше скомпрессировать.

А с этотого момента поподробнее )))

Каким образом его компресировать? Сори, если ламерский вопрос :o

pelvis
На сайте с 01.09.2005
Offline
345
#7
alibabaevich:
Я понимаю, что в базу может поместиться много информации, но вот с какой скоростью с нее будет производиться выборка, и какую нагрузку она будет давать на сервер...

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

Cheltap
На сайте с 27.11.2008
Offline
30
#8
alibabaevich:
А с этотого момента поподробнее )))
Каким образом его компресировать? Сори, если ламерский вопрос :o

Ну заливать в БД не текст, а содержимое архивного файла (zip, tar.gz, tar.bz2).

Считаю совет создать отдельную таблицу для текстов хорошим (ref_id, compressed_text),

но всё же рекомендую хранить тексты не в БД, а в отдельных файлах.

Пускай у вас всё будет в файлах ref_id.zip, а популярные дополнительно в ref_id.txt/doc.

Если нужен поиск по текстам - задача осложняется,

потребуется в БД всё-таки какую-то часть текста хранить.

А если поиск только по темам, предметам, названиям/описаниям - проблем не будет.

Слава Шевцов
На сайте с 23.07.2005
Offline
370
#9
Cheltap:
Ну заливать в БД не текст, а содержимое архивного файла (zip, tar.gz, tar.bz2).

Да. Или использовать команды MySQL compress/uncompress.

Cheltap:
но всё же рекомендую хранить тексты не в БД, а в отдельных файлах.

Там будут возникать проблемы с синхронизацией бекапов с базой. Если её решить архитектурными методами, то хранение в отдельных файлах, бесспорно, предпочтительнее.

DyaDya
На сайте с 11.04.2007
Offline
147
#10

Нужно искать что-то среднее между вариант 1 и вариант 2. Только вы знаете, что будете выводить на сайте посетителям.

Обычно весь текст реферата не выводят, а только Оглавление, Описание, отзывы (это всё в базе хранят).

А сам реферат лежит себе файликом, который можно скачать. Либо получить на него ссылку за СМС ;)

p.s. я почему-то всегда против хранения объёмных медиа данных в базе мускула.

Выбирайте качественный хостинг (http://vashmaster.ru/informaciya/o_poleznyh_programmah/news83.php) и продвигайте сайты в СЕОПУЛЬТ (http://seopult.ru/ref.php?ref=72b5ed9561fe66a1). А на «SAPE» я в обиде :) Не упрекайте за очепятки, пишу вслепую (http://ergosolo.ru/) и также делаю сайты (http://www.vashmaster.ru/) ;)
12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий