Bigdata - на чем делать большую базу

Статус
В этой теме нельзя размещать новые ответы.

jusuf

Бывший модератор
Регистрация
3 Апр 2006
Сообщения
329
Реакции
205
В общем нужна база чтоб выдержала 20-30 миллионов записей а то и больше.
Какую структуру делать ?

Записи будут такова типа :
noggano - Моя игра
noggano - Мама
noggano - урбан
Eminem - Not Afraid

нужен фильтр на уникальность не должно быть повторов
новые запросы должны добавляться в конец
ну и чтоб нормальня скорость работу была

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

Кстати вместо обычного и привычного myisam можно попробовать archive engine (он в mysql идёт из коробки). На моих данных он давал довольно приличные показатели, опережая myisam.
Только надо учитывать особенности - update не поддерживается и ключ или индекс можно только один поставить. Зато места на диске занимает меньше :) И опять таки в зависимости от задач/окружения может повысить скорость select/insert в сравнении с myisam/innodb
 
Последнее редактирование:
рекомендую заюзать перкону или же mariadb, они более оптимизированы, нежеле мускул оракловский... так жебыла статья на эту тему на хабре... к сожалению не могу найти её.
 
Попробуй postgresql. Довольно резво работает на больших базах. Делал базу кеев когда-то. От 5 млн mysql начинал дико тормозить уже. Полнотекстовый индекс по кею был + insert частый. Перенесли все на postgres - заработало раз в 50 резвее все :)
 
Попробуй postgresql. Довольно резво работает на больших базах. Делал базу кеев когда-то. От 5 млн mysql начинал дико тормозить уже. Полнотекстовый индекс по кею был + insert частый. Перенесли все на postgres - заработало раз в 50 резвее все :)
А что у него со стабильностью? Скажим, если в режиме апдейта/инсёрта в базу вырубить комп будет ли сохранена БД или есть риск потери всех данных (слышал что-то такое краем уха)?
 
По стабильности как настроишь, СУБД класса ближе в Ораклу (хотя меня сейчас запинают за такое ставнение). Зеркалирование баз есть через Slony, например. База больше класса ентерпрайза по задумке. По стабильности у меня несколько проектов больше года крутятся без перезагрузок и выпадений на нем. Бакап снимается средствами самой субд легко. Т.е. поставить по крону pg_dump раз в сутки например будет не лишним в любом случае. С бакапом на удаленный хост.

По поводу апдейтов-инсертов - есть commit изменений. Если комп вырубить при любой записи может или винт или вся ФС навернуться с тем же успехом :( Был случай, когда рассыпалась ФС вся на сервере. И не помог аппаратный рейд никак. Только удаленный бакап на другой хост.
 
Рекомендую mysql в привязке со sphinx
 
можно попробовать archive engine (он в mysql идёт из коробки).
Только надо учитывать особенности - update не поддерживается
А дальше
И опять таки в зависимости от задач/окружения может повысить скорость select/update в сравнении с myisam/innodb

Может хотели сказать в зависимости от задач/окружения может повысить скорость select/insert ?
 
Я бы рекомендовал mongodb или любую другую nosql для больших данных подходит. Обычный mysql превратит задачу индекса и проверку неуникальности в кошмар по поиску и индексированию базы.

Также как вариант, можете написать под эту задачу примитивное приложение (писать можно хоть на bash) с использованием файловой системы, что ускорит поиск уников например в папку /[путь к базе]/n/o/g/g/a/n/o кладете файл с названием "Моя игра" внутри файла можно при расширении приложения положить любой XML или текстовые данные.

Нормальная скорость работы зависит от правильной настройки.
 
В общем нужна база чтоб выдержала 20-30 миллионов записей а то и больше.
Это маленькая база данных. Подойдет любая РСУБД (разве что в noSQL направлении могут быть проблемы). Так что бери ту, под которую уже что-то писал и более-менее знаешь ее особенности.

MySQL (Maria, Percona), Postgres, MS, Oracle - не важно на таком количестве данных.


P.S.: Сейчас учусь по DataScience, так вот, скажу что BigData - это когда твои данные не влезают в 256Гб оперативной памяти. Делай выводы. Пока хватает оперативки - ни MapReduce, ни Hadoop тебе не нужны. В твом случае вообще копейки, никаких проблем нету.
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху