LINUX.ORG.RU

Проектирование БД

 , , ,


1

4

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


Ответ на: комментарий от disarmer

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

Deleted
()

озвучьте ваш хайлоад.
сколько запросов в секунду на всю инсталляцию?
сколько в инсталляции машин?
сколько мускулей?
сколько будет записей в секунду этих ваших логов добавляться?
что в одной записи лога?
индексы?

zed_0xff
()
Ответ на: комментарий от zed_0xff

Логи вылезли из комента subwoofer, ТСу вроде не логи хранить надо.

MrClon ★★★★★
()
Ответ на: комментарий от zed_0xff

Все еще только на этапе проектирования. Да и понятно одним мускулом не обойдеться. Да проектировать буду с учетом на несколько машин, плюс , Redis да и Mongo будут ипользоваться дабы в некоторых моментам облегчить жизнь мускулу.

Berdin
() автор топика

проект планирется highload

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

bj
()
Ответ на: комментарий от disarmer

Найдите специалиста

Пусть учится, чо. Может, бюджет конторы не позволяет нанимать специалиста, такие рабочие места суть есть годное поле для вкуривания проектирования БД.

ЗЫ Сам будучи системным программистом, напроектировал для одной конторы целую экспертную систему. Очень далека до идеала (постыдился бы показывать кому-то ещё), но и начинал с полного нуля и теоретического представления о процессе проектирования и реализации.

Deleted
()

Ты бы лучше спроектировал сам проект, чтоб она мог работать с несколькими базами и уметь в разные читать и писать, люк, логика запросов! А то потом из-за таких как ты, приходится ставить охуллиард костылей, особенно с мускулом. А вообще для хайлоада релляционные базы не используются, если ты изначально конечно планируешь. Думаешь, МТС, к примеру, логи и данные вызовов мобильных в базу пишет? :)

kukara4 ★★
()
Последнее исправление: kukara4 (всего исправлений: 1)
Ответ на: комментарий от kukara4

А вообще для хайлоада релляционные базы не используются

Какое смелое утверждение. 10к update/сек считается за хайлоад?

Думаешь, МТС, к примеру, логи и данные вызовов мобильных в базу пишет?

Думаю, что в реляционку пишут то, что ложится на реляционную схему.

leave ★★★★★
()
Ответ на: комментарий от leave

Какое смелое утверждение. 10к update/сек считается за хайлоад?

Я бы не считал это хайлоадом. Нагруженной да, хайлоадом нет. А того кто даже текое количество операций записи цепляет на 1 бд - извращенцем и неучем.

Думаю, что в реляционку пишут то, что ложится на реляционную схему.

А в nosql пишут то, что ложится в nosql. Красиво сказал.

kukara4 ★★
()
Ответ на: комментарий от leave

Какое смелое утверждение. 10к update/сек считается за хайлоад?

Буквально вчера тестировал производительность. Виртуалка с 512 мб, ненастроенный постгрес (только поставил), jdbc по сетке выдает 10000 инсертов как раз за 0.9 секунды. Какой же это хайлоад? Поставить серьезный сервер, оттюнить постгрес и думаю раз в 10 быстрее точно будет. Понятно, что индексы и прочая мишура вносит коррективы, но порядок поменяться не должен.

Legioner ★★★★★
()
Ответ на: комментарий от kukara4

А в nosql пишут то, что ложится в nosql. Красиво сказал.

я это сказал к тому, что логи звонков уложить в реляционную схему, если и возможно, то крайне затруднительно, и nosql решение здесь выглядит весьма логичным.

leave ★★★★★
()
Ответ на: комментарий от Legioner

Эт батенька, вы погорячились с сферическими конями :)

kukara4 ★★
()
Ответ на: комментарий от Legioner

Структуру и размер бд покажи, в которую ты это пишешь. А то сейчас окажется, что ты в память все это пишешь :)

leave ★★★★★
()
Последнее исправление: leave (всего исправлений: 1)
Ответ на: комментарий от leave

Да я понимаю. Я не понимаю зачем городить огороды ТС'у с хайлоадом на реляционке в тот момент, когда приложение только пишеться и логику можно шикарную сделать. Это не дибильный cms на php же, где выбора особо нету.

Да и то, хз что он понимает под хайлоадом. Может для него это 100 insert/update'ов. Да и опять таки, даже эти 100 запросов могут быть убийственными. ТС, гугли что такое шардинг, агрегация, сырые данные.

P.S А вообще, самый тру вей для кодеров - это забить на горизонтальную масштабированость и тратить кучу денег на железо для вертикальной :)

kukara4 ★★
()
Последнее исправление: kukara4 (всего исправлений: 3)
Ответ на: комментарий от kukara4

Применимости для хайлоада. Расскажи-ка что ты сам под этим понимаешь.

Ораклы постоянно на всех конференциях приводят конкретные цифры и демонстрируют тесты. Ну и пусть они медленней, зато это Оракл.

А доверять ценные данные типа банковских транзакций nosql поделкам школьников как-то ссыкотно.

Лог звонков, если под ним не стоят $$$, это просто какой-то юзерский хлам, просрется - печально, но и только

stevejobs ★★★★☆
()
Ответ на: комментарий от stevejobs

Применимости для хайлоада. Расскажи-ка что ты сам под этим понимаешь. Ораклы постоянно на всех конференциях приводят конкретные цифры и демонстрируют тесты. Ну и пусть они медленней, зато это Оракл.

Вот ни разу не видел его в хайлоаде. Его ценность в другом. Ты же видел презентации? Пересказывать мне влом.

Лично для меня хайлоад, это ситуации когда начинает использоваться шардинг и количество серверов для баз от 3-5 хотя бы. Если база влазит в 1 сервер - это не хайлоад.

Лог звонков, если под ним не стоят $$$, это просто какой-то юзерский хлам

Где что-то типа терадаты, где другие хранилища, МТС вообще на диски пишет. Для каждой задачи свое решение. Конечно это печально и хлам когда 1 решение толкают как универсальное. Благо в архитекторах сидят обычно умные люди, без опенсорца мозга.

kukara4 ★★
()
Ответ на: комментарий от kukara4

1) кто-то из ЛОРовцев присылал на почту результаты тестов, по которым MySQL с HandlerSocket заруливал всех и вся. (учись читерским методам ведения диалога :3)

2) вот еще вкусная статейка про то, как облажались в Diaspora выбрав MongoDB: http://habrahabr.ru/post/231213/

stevejobs ★★★★☆
()
Ответ на: комментарий от stevejobs

Diaspora выбрав MongoDB

Это для меня маты какие-то

MySQL с HandlerSocket заруливал всех и вся

Да кажись чувак выше с 512 озу и 10к запросов к постгре всех рвет :)

kukara4 ★★
()
Ответ на: комментарий от kukara4

MongoDB - это супер популярная документная БД. Diaspora - это распределенная социальная сеть, типа ВКонтача только без центрального сервера. В середине разработки оказалось, отсутствие acid транзакций и отсутствие джоинов стало поперек глотки. В результате им пришлось эмулировать отсутствующие фичи руками в клиентском коде, и в результате оно стало той же реляционной бд, только плохой и тормозной. Т.е. хоть и нагрузка большая, а все равно нужна реляционная база, потому что предметная область такая.

stevejobs ★★★★☆
()
Ответ на: комментарий от kukara4

Там нет транзакций. В общечеловеческом смысле. Но можно изворачиваться как уж на сковородке. Там есть compare-and-set, поверх которых можно реализовать вариацию на тему MVCC: http://habrahabr.ru/post/153321/

stevejobs ★★★★☆
()
Ответ на: комментарий от kukara4

Я не понимаю зачем городить огороды ТС'у с хайлоадом на реляционке в тот момент, когда приложение только пишеться и логику можно шикарную сделать.

тут согласен полностью.

P.S А вообще, самый тру вей для кодеров - это забить на горизонтальную масштабированость и тратить кучу денег на железо для вертикальной :)

чувствуется сертифицированный специалист :D

leave ★★★★★
()
Ответ на: комментарий от quest

что-ж ты тут делаешь-то?

Как что, конечно радуюсь что тут есть такие как ты. А еще больше радуюсь когда после таких переделываем, получая за это нормальные бабки.

kukara4 ★★
()
Ответ на: комментарий от kukara4

Вот ни разу не видел его в хайлоаде. Его ценность в другом. Ты же видел презентации? Пересказывать мне влом.

Лично для меня хайлоад, это ситуации когда начинает использоваться шардинг и количество серверов для баз от 3-5 хотя бы. Если база влазит в 1 сервер - это не хайлоад.

я видел, базу ремеди на раке, 3 мастера по 96 гиг рамы (2011 год).

leave ★★★★★
()
Ответ на: комментарий от stevejobs

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

клиентский код намного проще распараллеливать, так что все ок

leave ★★★★★
()
Ответ на: комментарий от leave

чувствуется сертифицированный специалист :D

Ну в нашей практике такое часто случается. Почему-то все думают, что можно легко кластеризировать базу, увеличить количество транзакций в 100500 раз. А за логику приложения никто и никогда не думает. Ну и начинается, а зачем переписывать, а зачем делать. А продайте нам железо по-мощнее. А самая беда приходит, когда кодеры начинают SQL запросы оптимизировать.

kukara4 ★★
()
Последнее исправление: kukara4 (всего исправлений: 1)
Ответ на: комментарий от leave

клиентский код намного проще распараллеливать, так что все ок

это если ты умеешь. А когда не умеешь и надеешься, что базка всё сделает за тебя - то ОЙ

stevejobs ★★★★☆
()
Ответ на: комментарий от leave

Вот, кстати, я не в курсе, но может ты знаешь, есть хоть какие-то определения или стандарты по самому термину. Так-то хайлоадом можно много вещей назвать.

kukara4 ★★
()
Ответ на: комментарий от Berdin

Но требования по нагрузке то уже должны быть?

goingUp ★★★★★
()
Ответ на: комментарий от kukara4

Формальных метрик не видел ни разу. Для себя хайлоадом считаю ситуацию «уперлись во все сразу и надо думать над производительностью, а не фичами». Если брать веб, то в качестве метрики иногда использую «меньше полусекунды на ответ при 50k RPM».

leave ★★★★★
()
Ответ на: комментарий от kukara4

Как что, конечно радуюсь что тут есть такие как ты.

Какой забавный. Радуйся в своем выдуманном мире, гражданин с проприетарным мозгом ты наш.

quest ★★★★
()

что кроется под hiload'ом? может, там сразу окажется, что мускуль не понянет. он ведь довольно тормозной и не такой уж прямо оптимальный. для своей ниши он работает отлично. но надо понимать, что он не идеален. ну и какбэ mariadb уже в тренде, с тех пор, как им овладел оракл и стал там всякое непотребство учинять.

Iron_Bug ★★★★★
()
Ответ на: комментарий от quest

Какой забавный. Радуйся в своем выдуманном мире, гражданин с проприетарным мозгом ты наш.

Уж лучше так, чем носить одни кроссовки 2 года, спрашивать дистр, и на мобильник андроид накатывать. Сори, я думал ты что-то более серьезное и с проектами дело имеешь ;) Переоценил маленька.

kukara4 ★★
()
Ответ на: комментарий от kukara4

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

quest ★★★★
()
Ответ на: комментарий от Iron_Bug

стал там всякое непотребство учинять

какое непотребство? разгон мускуля работающего под виндой в кучу раз - это непотребство?

stevejobs ★★★★☆
()
Ответ на: комментарий от stevejobs

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

а вот политика укрывательства багов - это непотребство.

Iron_Bug ★★★★★
()
Ответ на: комментарий от stevejobs

Тссссс, тут же принятно ненавидеть оракл и проприетарщину, и чем обиднее словом обозвешь, тем лучше ..

kukara4 ★★
()
Ответ на: комментарий от kukara4

понимаешь, я достаточно долго с ним проработала, чтобы это сказать веско и объективно. я писала дрова под маздай, начиная с 95-го, через все тернии и уродства 98, 2000, всю серию, вплоть до семёрки. и я всё это УГ изнутри знаю и могу сравнивать.

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

Iron_Bug ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.