Литературный портал.. mysql?

Maler

Новичок
Литературный портал.. mysql?

Здравствуйте, есть огромная библиотека литературы, общим объёмом около 30 гб. Есть желание сделать сайт с этим материалом.

Есть текстовые файлы, от 50 кб до 5 мб., все это, я планирую перегнать в mysql.

Скажу честно, с такими объёмами я никогда не работал, по сему обращаюсь к знатокам.
Потянет ли mysql такую массу. И подскажите наиболее правильные методы работы с большими данными.
 

Фанат

oncle terrible
Команда форума
Сначала ответь себе на вопрос - зачем хранить этот текст в mysql?
 

Maler

Новичок
Если хранить это все в файлах, то как это читать? Если человек хочет прочитать произведение «Война и мир», php при таких объемах будет тормозить, а человек будет ждать загрузки до скончания веков. Ведь перед тем как отдать страницу с символа N по символ N, придется читать файл полностью. А в Mysql, этот вопрос обстоит иначе. На сколько я знаю (с прикладным программированием не знаком), данные в в базе хранятся в бинарнике. А там выборка с ячейки N по ячейку N ресурсов столько не потребляет.

По идее можно разбить файл на группу файлов, но как тогда организовать поиск? Это придется делать какие-то индексы по стоп-словами. Да и не сделать толкового поиска по такому количеству текстовых файлов.

П.С.
Я именно за советами обратился: как лучше. Все мои рассуждения, сейчас построены на теории, т.к., повторюсь: с такими объёмами я никогда не работал.
 

Pigmeich

Новичок
Если человек хочет прочитать произведение «Война и мир», php при таких объемах будет тормозить, а человек будет ждать загрузки до скончания веков. Ведь перед тем как отдать страницу с символа N по символ N, придется читать файл полностью.
Все кроме торможения верно. Если вы не БЭСМ используете.

А в Mysql, этот вопрос обстоит иначе. На сколько я знаю (с прикладным программированием не знаком), данные в в базе хранятся в бинарнике. А там выборка с ячейки N по ячейку N ресурсов столько не потребляет.
Это системное, скорее. А сколько ресурсов потребляет выборка.

И самый забавный вопрос: где храниться база?

По идее можно разбить файл на группу файлов, но как тогда организовать поиск? Это придется делать какие-то индексы по стоп-словами. Да и не сделать толкового поиска по такому количеству текстовых файлов.
Вам что, гугла мало?
 

Gas

может по одной?
Maler
1. Смысла держать в базе все тексты не вижу, только разные meta-данные.
2. Для начала достаточно поиска по названиям. Поиск по текстам нужен минимальному количеству людей, и при таких объёмах делается не средствами rdbms, а специализированными поисковыми движками.
3. Про ячейки, символы в файлах и торможения у тебя недостаток знаний и каша в голове.

Сначала определись с общей функциональностью, в каком виде будет пользователям показываться каталог, будут книги зразу полностью грузится или по частям, если частями - какой критерий разбиения на них.
Вот появятся конкретные вопросы и тогда будут более конкретные ответы.
 

Maler

Новичок
Функциональность:
0. Выборка по стилю, алфавиту, автору
1. Поиск по названиям, авторам
2. Поиск по тексту (цитаты, слова, главы)
3. Закладки: по стилю, автору, произведению, странице->символу

конкретные вопросы
 

Фанат

oncle terrible
Команда форума
1 к хранению собственно текста в БД отношения не имеет
2 то же самое
4 то же самое
3 - вопрос. чем поиск по файлу резмером 5 мегабайт отличается от поиска по файлу 30 гигабайт?

-~{}~ 26.01.08 20:16:

перед тем как отдать страницу с символа N по символ N, придется читать файл полностью
это заблуждение. очень странное.
А в Mysql, этот вопрос обстоит иначе.
как именно?
данные в в базе хранятся в бинарнике.
что такое "бинарник"?
а в просто файле на диске - в каком виде?
 

Gas

может по одной?
конкретные вопросы
ok :)
Названия книг, авторы, стили - это всё хранится в таблицах базы данных. Для каждой книги хранится путь к текстовому файлу, соответственно самих книг в базе нет.

Выборки для получения стилей, построения алфавитного указателя и поиска по авторам/названиям книг сделать сможешь при такой структуре?

2. Поиск по тексту (цитаты, слова, главы)
Пока не думай об этом, getting real, оставь на потом.

То-есть остаётся самый важный момент - импортировать в базу данных список книг и авторов. По этому поводу никто ничего не посоветует - не известно в каком формате у тебя эти 30гиг книг.
 

Maler

Новичок
1,2,3 - все так, просто описал задачи.
3 -
что такое "бинарник"?
а в просто файле на диске - в каком виде?
Я же говорю: к системному программированию я никакого отношения не имею.. Но раз уж заговорили..

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

В базе выборка побайтовая, на то есть разные типы данных (text, int..). На каждый тип данных отведено определенное количество байт.

Вот так мне это когда-то объяснили. Это не мои фантазии. Если я не прав, то с интересом просвещусь.

---------------------

И все же, что посоветуете& Может кто-то сталкивался с такой задачей.
 

Фанат

oncle terrible
Команда форума
А чем отличается посимвольная выборка от побайтовой? Ну, для однобайтных кодировок, разумеется?
 

Maler

Новичок
Пока не думай об этом, getting real, оставь на потом.
А о чем думать? Проблемы перегнать нету, там все в html'e простейший парсер очистит и отформатирует все. Вопрос не в этом, а в том, как все это лучше хранить на серваке, что бы было удобно пользователю отдавать. Еще и про постраничный просмотр не забыв.
 

Фанат

oncle terrible
Команда форума
Да погоди ты с советами. Давай разберемся. И вместе примем решение. Но на основе реальных знаний и фактов, а не фантазий и слухов. Логично?

-~{}~ 26.01.08 20:37:

Еще и про постраничный просмотр не забыв.
отлично. пусть будет постраничный просмотр. Так чем, объясни, постраничный просмотр из базы отличается от постраничного просмотра из базы?
 

Maler

Новичок
А чем отличается посимвольная выборка от побайтовой? Ну, для однобайтных кодировок, разумеется?
Вот ты заладил, ну откуда я заню, я ведь не системщик.. я 5 лет сайты рисую, а ты мне про байты-символы ))

Ты посоветуй лучше - как лучше! :)
 

Mols

Новичок
Maler
Вам уже всё посоветовали. Оставьте п. 4 и сделайте 1,2,3 так, как Вам написал Gas (файлы хранить в файловой системе, а в БД только их описания и пути к ним). В процессе наберётесь опыта. Станет меньше фантазий и иллюзий.
 

Фанат

oncle terrible
Команда форума
Системщиком быть не надо. Надо чуть-чуть соображать. В однобайтных кодировках (в одной из которых у тебя и лежат тексты), как следует из названия, один символ кодируется одним байтом.
Теперь ты сам в состоянии определить, чем отличается посимвольная выборка от побайтовой?

Как лучше - всё равно. Что там - что там. Храни, где хочешь.

-~{}~ 26.01.08 20:43:

а почему чтение файла в буфер (какой-такой буфер ещё?) из файла должно быть медленнее, чем чтение в буфер из БД? Ну, чисто теоретически?
 

Maler

Новичок
из файла должно быть медленнее, чем чтение в буфер из БД? Ну, чисто теоретически?
ну, теоретически, нет.. как оно на практике.. с большими файлами я не работал.

Ок, если в файловой системе, то можно их налету зиповать и раззипавывать? На сколько это будет сервак нагружать?
 
Сверху