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

Тема в разделе "Базы данных", создана пользователем jusuf, 27 ноя 2014.

Метки:
Статус темы:
Закрыта.
Модераторы: latteo
  1. jusuf

    jusuf Бывший модератор

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

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

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

    что можете посоветовать ?
     
  2. latteo

    latteo Эффективное использование PHP, MySQL

    Moderator
    Регистр.:
    28 фев 2008
    Сообщения:
    1.403
    Симпатии:
    1.185
    Как ни странно, на фоне бурного развития NoSQL, обычный mysql рулит.
    Вот статья, как подтверждение моих слов, о метаниях между разными популярными NoSQL - http://habrahabr.ru/post/153859/

    Кстати вместо обычного и привычного myisam можно попробовать archive engine (он в mysql идёт из коробки). На моих данных он давал довольно приличные показатели, опережая myisam.
    Только надо учитывать особенности - update не поддерживается и ключ или индекс можно только один поставить. Зато места на диске занимает меньше :) И опять таки в зависимости от задач/окружения может повысить скорость select/insert в сравнении с myisam/innodb
     
    Последнее редактирование: 16 апр 2016
  3. Bezhev

    Bezhev

    Регистр.:
    26 дек 2012
    Сообщения:
    362
    Симпатии:
    123
    рекомендую заюзать перкону или же mariadb, они более оптимизированы, нежеле мускул оракловский... так жебыла статья на эту тему на хабре... к сожалению не могу найти её.
     
    vanechek нравится это.
  4. fxmonster

    fxmonster Создатель

    Регистр.:
    10 янв 2007
    Сообщения:
    38
    Симпатии:
    24
    Попробуй postgresql. Довольно резво работает на больших базах. Делал базу кеев когда-то. От 5 млн mysql начинал дико тормозить уже. Полнотекстовый индекс по кею был + insert частый. Перенесли все на postgres - заработало раз в 50 резвее все :)
     
    vanechek нравится это.
  5. latteo

    latteo Эффективное использование PHP, MySQL

    Moderator
    Регистр.:
    28 фев 2008
    Сообщения:
    1.403
    Симпатии:
    1.185
    А что у него со стабильностью? Скажим, если в режиме апдейта/инсёрта в базу вырубить комп будет ли сохранена БД или есть риск потери всех данных (слышал что-то такое краем уха)?
     
  6. fxmonster

    fxmonster Создатель

    Регистр.:
    10 янв 2007
    Сообщения:
    38
    Симпатии:
    24
    По стабильности как настроишь, СУБД класса ближе в Ораклу (хотя меня сейчас запинают за такое ставнение). Зеркалирование баз есть через Slony, например. База больше класса ентерпрайза по задумке. По стабильности у меня несколько проектов больше года крутятся без перезагрузок и выпадений на нем. Бакап снимается средствами самой субд легко. Т.е. поставить по крону pg_dump раз в сутки например будет не лишним в любом случае. С бакапом на удаленный хост.

    По поводу апдейтов-инсертов - есть commit изменений. Если комп вырубить при любой записи может или винт или вся ФС навернуться с тем же успехом :( Был случай, когда рассыпалась ФС вся на сервере. И не помог аппаратный рейд никак. Только удаленный бакап на другой хост.
     
    latteo и Kesha777 нравится это.
  7. greatbart

    greatbart Постоялец

    Регистр.:
    25 авг 2007
    Сообщения:
    59
    Симпатии:
    12
    Рекомендую mysql в привязке со sphinx
     
  8. dandandan

    dandandan

    Регистр.:
    7 авг 2008
    Сообщения:
    975
    Симпатии:
    255
    А дальше
    Может хотели сказать в зависимости от задач/окружения может повысить скорость select/insert ?
     
  9. KaiSer77

    KaiSer77 Постоялец

    Регистр.:
    21 июл 2013
    Сообщения:
    79
    Симпатии:
    42
    Я бы рекомендовал mongodb или любую другую nosql для больших данных подходит. Обычный mysql превратит задачу индекса и проверку неуникальности в кошмар по поиску и индексированию базы.

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

    Нормальная скорость работы зависит от правильной настройки.
     
  10. BaBL

    BaBL Постоялец

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

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


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