|
|
|
Одна база vs несколько баз.
|
|||
|---|---|---|---|
|
#18+
Вопрос возник. Есть несколько организаций, связанных документооборотом. Исполнитель говорит «Давайте каждой организации поднимем свою базу данных, свой сервер приложений. И между базами организуем меведомственный обмен. Правда, все их сложим на одном сервере в виртуальных машинах.» Одним из основных пунктов мотивации такого решения «Быстрее работает. Если делать 10 запросов к 10-ти базам, в каждой из которых 100 записей и 10% ресурса сервера, то это быстрее, чем делать 10 запросов к одной базе, в которой 1000 записей и 100% ресурса сервера». СУБД — PostgreSQL. Собственно вопросы: 1) Как отговорить от такого кривого решения (разделение баз по организационному признаку)? 2) Неужели так быстрее? (на практике, почти каждый документ присутствует в двух трех базах и при многобазовом подходе будет повторяться) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2011, 19:29 |
|
||
|
Одна база vs несколько баз.
|
|||
|---|---|---|---|
|
#18+
Заказчик1, +можно разнести по разным машинам позже +проще наладить безопасность минусов тоже хватает - 10 виртуалок СУБД не смогут нормально работать на одном хосте ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2011, 19:45 |
|
||
|
Одна база vs несколько баз.
|
|||
|---|---|---|---|
|
#18+
Siemargl, Может статья какая есть, что бы пальцем ткнуть? Или книжка? Наверняка же лучше умы этот вопрос уже рассмотрели и изжевали. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2011, 19:58 |
|
||
|
Одна база vs несколько баз.
|
|||
|---|---|---|---|
|
#18+
On 05.09.2011 20:29, Заказчик1 wrote: > 1) Как отговорить от такого кривого решения (разделение баз по организационному > признаку)? Ну, как... у виска им покрути ... > 2) Неужели так быстрее? (на практике, почти каждый документ присутствует в двух > трех базах и при многобазовом подходе будет повторяться) Нет, так не быстрее. В общем -- всё равно. Производительность доступа к записи по индексу -- O( log N ) (N-число записей в таблице). При увеличении N в 10 раз результат растёт на 1 (можеш посчитать сам). Разница будет, но : -- либо на очень маленьких таблицах при доступе без индекса (при сколько-нибудь больших таблицах это просто не будет работать, напр. 10 тыщ записей и более) -- либо на очень больших таблицах (10-100 миллионов записей). Я думаю, что скорее всего ваша БД не попадает ни под одну из этих категорий. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2011, 23:56 |
|
||
|
Одна база vs несколько баз.
|
|||
|---|---|---|---|
|
#18+
MasterZiv, Число записей - ~10-50 млн. Разница в какую сторону будет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2011, 07:23 |
|
||
|
Одна база vs несколько баз.
|
|||
|---|---|---|---|
|
#18+
Заказчик1, Я бы на вашем месте просто написал бы тестовый примерчик. Потому что, лучше попробовать и выдать начальникам результат. А советов здесь могут надавать разных. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2011, 09:29 |
|
||
|
Одна база vs несколько баз.
|
|||
|---|---|---|---|
|
#18+
On 06.09.2011 8:23, Заказчик1 wrote: > Число записей - ~10-50 млн. > > Разница в какую сторону будет? В большую. Но это всё равно ещё не VLDB. Где-то к нижней границе будет подбираться. Но там всё равно не нужно делать разные БД, потому что это --- прошлый век. Современные СУБД поддерживают партицирование таблиц, секционирование и прочее. Как с этим в PG я правда не в курсе. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2011, 10:02 |
|
||
|
Одна база vs несколько баз.
|
|||
|---|---|---|---|
|
#18+
Вам заказчик все правильно говорит. У каждой организации - свои документы, своя база. Это будет правильно с организационной и юридической позиции, а это самое важное. Производительность - дело десятое. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2011, 13:17 |
|
||
|
Одна база vs несколько баз.
|
|||
|---|---|---|---|
|
#18+
> Заказчик Исполнитель fix ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2011, 13:20 |
|
||
|
Одна база vs несколько баз.
|
|||
|---|---|---|---|
|
#18+
On 06.09.2011 14:17, kosh the best wrote: > Вам заказчик все правильно говорит. У каждой организации - свои документы, своя > база. Это будет правильно с организационной и юридической позиции, а это самое > важное. Ты наверное "НЕ" пропустил. Это САМОЕ НЕ ВАЖНОЕ. Ну и заказчик очень редко говорит что-то правильное. Потому что в ИТ нифига не смыслит. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2011, 14:02 |
|
||
|
Одна база vs несколько баз.
|
|||
|---|---|---|---|
|
#18+
Заказчик1Исполнитель говорит ... Если делать 10 запросов к 10-ти базам, в каждой из которых 100 записей и 10% ресурса сервера, то это быстрее, чем делать 10 запросов к одной базе, в которой 1000 записей и 100% ресурса сервера». Если исполнитель говорит такую чушь, то гнать его нафиг безотносительно плюсов и минусов решения (которые есть). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2011, 14:40 |
|
||
|
Одна база vs несколько баз.
|
|||
|---|---|---|---|
|
#18+
softwarerЗаказчик1Исполнитель говорит ... Если делать 10 запросов к 10-ти базам, в каждой из которых 100 записей и 10% ресурса сервера, то это быстрее, чем делать 10 запросов к одной базе, в которой 1000 записей и 100% ресурса сервера». Если исполнитель говорит такую чушь, то гнать его нафиг безотносительно плюсов и минусов решения (которые есть). +1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2011, 14:45 |
|
||
|
Одна база vs несколько баз.
|
|||
|---|---|---|---|
|
#18+
Не все тут так безусловно. Если БД организаций всегда будут крутиться на одном сервере. Если эти организации -являются подразделениями более крупной единой организации. Если эти организации не могут существовать по отдельности. Если требуется некая обобщенная отчетность. То лучше единая база. Если же есть шанс, что хоть одна из организаций может отделиться. То стоит подумать о нескольких базах. Ну или готовый способ выделения данных касающихся только ее в отдельную БД В общем тут надо точно знать почему несколько организаций будут хранить свои данные на одном сервере, степень их родства и самостоятельности. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2011, 16:23 |
|
||
|
Одна база vs несколько баз.
|
|||
|---|---|---|---|
|
#18+
Заказчик11) Как отговорить от такого кривого решения (разделение баз по организационному признаку)? Поставьте задачи: 1 о необходимости мгновенном отражения всех изменений касающихся определённого документа во всех базах 2 объединенные отчеты со всех баз ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2011, 16:28 |
|
||
|
Одна база vs несколько баз.
|
|||
|---|---|---|---|
|
#18+
kosh the bestВам заказчик все правильно говорит. У каждой организации - свои документы, своя база. Это будет правильно с организационной и юридической позиции, а это самое важное. Производительность - дело десятое. А ссылки на юридические документы можно? То, что с технической точки зрения это глупо, вроде как бы все уже согласились. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2011, 16:54 |
|
||
|
Одна база vs несколько баз.
|
|||
|---|---|---|---|
|
#18+
VoralЗаказчик11) Как отговорить от такого кривого решения (разделение баз по организационному признаку)? Поставьте задачи: 1 о необходимости мгновенном отражения всех изменений касающихся определённого документа во всех базах 2 объединенные отчеты со всех баз А есть теоретические изыскания на тему разделения баз? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2011, 16:56 |
|
||
|
Одна база vs несколько баз.
|
|||
|---|---|---|---|
|
#18+
Заказчик1А есть теоретические изыскания на тему разделения баз? Тебе шашечки, или ехать? (c) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2011, 20:37 |
|
||
|
Одна база vs несколько баз.
|
|||
|---|---|---|---|
|
#18+
Заказчик1А ссылки на юридические документы можно? А при чем тут юридические документы? С точки зрения закона лишь бы не были доступны персональные данные получаемые от работников/клиентов одной конторой в другой конторе. Но это совсем тут не при чем. Будут в одной физической базе храниться - вопрс разграничения прав доступа; будут в разных, но на одном сервере - опять же вопрос разграничения прав. Просто средства разграничения этих самых прав. Все остальное с юридической точки зрения дело самих фирм и их договорных отношений. Так, что ни каких ссылок вам ни кто не даст. Разве, что закон о персональных данных можете почитать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2011, 00:37 |
|
||
|
Одна база vs несколько баз.
|
|||
|---|---|---|---|
|
#18+
Заказчик1А есть теоретические изыскания на тему разделения баз? Не очень понимаю, что вы хотите. По этому выскажу несколько мыслей по этому поводу. Заказчик1Быстрее работает. Если делать 10 запросов к 10-ти базам, в каждой из которых 100 записей и 10% ресурса сервера, то это быстрее, чем делать 10 запросов к одной базе, в которой 1000 записей и 100% ресурса сервера». Достаточно спорное заявление. Скажу честно на деле не проверял, но. Сомневаюсь, что Заказчик1Быстрее работает. Если делать 10 запросов к 10-ти базам, в каждой из которых 100 записей и 10% ресурса сервера, то это быстрее, чем делать 10 запросов к одной базе, в которой 1000 записей и 100% ресурса сервера Скорее всего разница если и будет то ничтожно мала. Тут будут крутиться несколько операционок в виртуальных машинах. (надеюсь это хотя бы аппаратная виртуализация) Про 10% и 100% ресурсов сервера совершенно не понял. С какого потолка взяты эти цифры? По большому счету разница только к одному файлу мы обращаемся или к нескольким. Ну а порядок цифр данных для примера (10, 100, 1000) это вообще мелочевка. Кроме того как у них получается 10 баз по 100 записей против 1 в 1000 если по условиям задачи документы дублируются в остальные базы. Кроме того это вообще не вопрос 100 записей или 1000 если грамотные запросы и грамотные индексы. Правда во всем этом есть одно очень большое и значимое "но". Я так понимаю вы заказчик и не являетесь специалистом в данной области (я правильно понял?) возможно есть какие-то видимые разработчику причины по которым все же следует разделить базы. Но он по каким то причинам не может до вас донести данные причины. Вообще странное решение. С одной стороны базы разводят на разные объясняя запросами и количеством записей. Что указывает, что объем БД значителен. С другой стороны выбран запуск серверов в виртуальных машинах на одном физичесоком сервере, что на мой взгляд не совсем стыкуется с большими объемами данных. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2011, 01:08 |
|
||
|
Одна база vs несколько баз.
|
|||
|---|---|---|---|
|
#18+
VoralПро 10% и 100% ресурсов сервера совершенно не понял. С какого потолка взяты эти цифры? По большому счету разница только к одному файлу мы обращаемся или к нескольким. Ну а порядок цифр данных для примера (10, 100, 1000) это вообще мелочевка. Кроме того как у них получается 10 баз по 100 записей против 1 в 1000 если по условиям задачи документы дублируются в остальные базы. Кроме того это вообще не вопрос 100 записей или 1000 если грамотные запросы и грамотные индексы. Порядок цифр - 100 000, миллион и несколько миллионов. Реальное количество организаций (и баз данных) будет под 50, в перспективе - под 500. VoralПравда во всем этом есть одно очень большое и значимое "но". Я так понимаю вы заказчик и не являетесь специалистом в данной области (я правильно понял?) возможно есть какие-то видимые разработчику причины по которым все же следует разделить базы. Но он по каким то причинам не может до вас донести данные причины. Разработчик думал, что Заказчик вообще ничего не понимает в этом. Есть предположение, что такую структуру было предложено сделать в целях усложнения дальнешего развития. Что бы почаще привлекали нашего исполнителя. А когда мне начали городить что мол "работать будет быстрее" я уже задумался над здравым смыслом. VoralВообще странное решение. С одной стороны базы разводят на разные объясняя запросами и количеством записей. Что указывает, что объем БД значителен. С другой стороны выбран запуск серверов в виртуальных машинах на одном физичесоком сервере, что на мой взгляд не совсем стыкуется с большими объемами данных. Если так приспичило, что мешает сделать репликацию? Зачем именно организационно разделять? Предыдущему отвечающему: шашечки, к сожалению,тоже нужны ( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2011, 09:26 |
|
||
|
Одна база vs несколько баз.
|
|||
|---|---|---|---|
|
#18+
Заказчик1Порядок цифр - 100 000, миллион и несколько миллионов. Реальное количество организаций (и баз данных) будет под 50, в перспективе - под 500. Есть ли хоть малейший шанс выхода хоть одной фирмы из вашего "конгломерата"? На вскидку, каков процент общих документов в объёме конкретной организации? Есть ли необходимость отслеживать все изменения по конкретному документу во всех организациях? У каждого сервера (виртуального) подразумевается свой админ от каждой организации? Есть ли необходимость сводных отчетов по всем организациям сразу? 50-500 виртуальных машин это жесть :) Заказчик1А когда мне начали городить что мол "работать будет быстрее" я уже задумался над здравым смыслом. Речь идёт о стандартном документообороте (кто-то родил документ, а далее документ живет своей жизнью - футболиться по боссам для утверждения/редактирования, бегает по лестницам исполнителей, обрастает статусами и сроками)? Заказчик1Если так приспичило, что мешает сделать репликацию? По моему опыту репликация только в крайнем случае - если уж совсем приспичило :) Заказчик1Зачем именно организационно разделять? Если организации все же разные. И их общий документооборот не большой в общей массе внутреннего документооборота. Если они не объеденены общей вышестоящей организацией. То вопрос надо ставить: "А зачем объединять?" Т.е. надо понимать, что в принципе к внутреннему документообороту одной фирмы могут получить доступ лица из другой фирмы - все зависит от админа и организации хранения данных софтиной. Опять же если одна организация захочет сама отвечать и следить за своей БД на своем персональном сервере (например программа будет медленно работать, а все не захотят вкладывать деньги в апгрейд свервера, а одни скажут "не, ребята, нам скорость важнее у нас будет база на своём железе"). Опять же минус общей базы для разных организаций: не дай Бог, что-то случиться с данными (и не важно по какой и по чьей причине): начнётся бездоказательный спор, ругательства и обиды: "это ваш админ, это ваш работник, это ваш....".... То, что при нескольких базах вместо одной увеличится сложность обслуживания. Я бы не сказал. Я сам обслуживаю пару десятков баз (разделение исторически сложившийся факт ибо даже города разные и родилось все еще в доинтернетные времена - сейчас постепенно движется к объединению. но у меня по сути подразделения одной рганизации). Обновление легко - написал утилиту которая прогоняет скрипты обновлений по списку баз. И все. Если же 3*тьфу произойдет катаклизм с одной из баз, и все бэкапы сдохнут :).... То маленькую базу легче по крупицам восстановить. Чем общую. Кроме того не знаю как в постгрии, а в firebird появилась возможность делать общие запросы к нескольким БД (они могут быть на разных серверах). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2011, 10:13 |
|
||
|
Одна база vs несколько баз.
|
|||
|---|---|---|---|
|
#18+
VoralЗаказчик1Порядок цифр - 100 000, миллион и несколько миллионов. Реальное количество организаций (и баз данных) будет под 50, в перспективе - под 500. Есть ли хоть малейший шанс выхода хоть одной фирмы из вашего "конгломерата"? На вскидку, каков процент общих документов в объёме конкретной организации? Есть ли необходимость отслеживать все изменения по конкретному документу во всех организациях? У каждого сервера (виртуального) подразумевается свой админ от каждой организации? Есть ли необходимость сводных отчетов по всем организациям сразу? Шансов выхода нет. Возможно слияние или разделение. 80% документов ходит между организациями. При этом возможно направление в несколько организаций. Конечно есть. Для этого предполагается, что бы база, где документ родился, запрашивала изменения по этому документу в других базах или эти базы сами будут пересылать (не принципиально). Подразумевается централизованный. Конечно есть, для чего предполагается отдельный навешенный сверху механизм. Voral50-500 виртуальных машин это жесть :) Ага.... Их самой-самой первой итерации 34 предполагается. quot Voral] Заказчик1А когда мне начали городить что мол "работать будет быстрее" я уже задумался над здравым смыслом. Речь идёт о стандартном документообороте (кто-то родил документ, а далее документ живет своей жизнью - футболиться по боссам для утверждения/редактирования, бегает по лестницам исполнителей, обрастает статусами и сроками)?[/quot] В целом - да. VoralТо, что при нескольких базах вместо одной увеличится сложность обслуживания. Я бы не сказал. Я сам обслуживаю пару десятков баз (разделение исторически сложившийся факт ибо даже города разные и родилось все еще в доинтернетные времена - сейчас постепенно движется к объединению. но у меня по сути подразделения одной рганизации). Обновление легко - написал утилиту которая прогоняет скрипты обновлений по списку баз. И все. Если же 3*тьфу произойдет катаклизм с одной из баз, и все бэкапы сдохнут :).... То маленькую базу легче по крупицам восстановить. Чем общую. Кроме того не знаю как в постгрии, а в firebird появилась возможность делать общие запросы к нескольким БД (они могут быть на разных серверах). Вот по поводу последнего... А если в одной из 500 баз (для условности в 499-й) обновление не накатилось (условно, конфликт данных), а обновлять нужно все 500 одновременно т.к. они работать друг с другом не смогут (хотя бы общие справочники) то что тогда? 498 баз откатывать? или делать все на копиях? бр...... А жарптица то рулит. Но боюсь не потянет она базы в десятки терабайт. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2011, 11:27 |
|
||
|
Одна база vs несколько баз.
|
|||
|---|---|---|---|
|
#18+
Заказчик1, тут уже все умные слова прозвучали. Чиссо из практики по виртуалкам... если у вас есть 8 и более аппаратных потоков - то это хороший способ их загружать. Но! Это всего ПАРА или ТРОЙКА виртуалок!!! Не забывайте что помимо проца очень активно участвует и винт. А он в вашем случае просто сдохнет. Помимо самих данных и решения задачи на уровне БД, он в добавок будет обеспечивать оси...а это свопинг, кэши и прочая галимотья. Если сюда добавить какой нить (не дай бог дот-НЕТ) в какой нить форточно образной оси - вы будете ждать отклика (в некоторых случаях) несколько десятков секунд тока в путь. Чиссо по мне решение - масштабируемое на одном серваке. Но специализированном. типа AS400. Там такие задачи - обычное дело. Постгресс (хоть и ближайший родственник к Ораклу, и для Оракла это так же задачи по карману) я бы не стал ставить. Всё же его удел - открытость кода и возможность гибче перестроить функционал на ряду с его хорошей мощностью. удачи вам (круглый) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2011, 11:53 |
|
||
|
Одна база vs несколько баз.
|
|||
|---|---|---|---|
|
#18+
Заказчик1Вот по поводу последнего... А если в одной из 500 баз (для условности в 499-й) обновление не накатилось (условно, конфликт данных), а обновлять нужно все 500 одновременно т.к. они работать друг с другом не смогут (хотя бы общие справочники) то что тогда? 498 баз откатывать? или делать все на копиях? бр...... Ну если БД имеют совершенно идентичную структуру. То такие случаи редки. Хотя все зависит от степени нерадивасти админа (например не уследил, что место исчерпалось на диске), ну и грамотного построения архитектуры, чтоб там косяков не было явных. А так реализовать можно то разными способами. И все зависит от конкретного случая. В ином не сложно откатить. В другом руками 499 базу подтянуть. В третьем предусмотреть механизм временного кеширования изменений с последующим (после восстановления нормальной ситуации) состыковыванием. От этого ни куда не денешься в случае в случае выбора решения с несколькими БД. Может и на копиях. Но я не настолько хорошо знаком с постгрии и не знаю можно ли там оперативно иметь свежую копию. Прямым копированием нескольких терабайт - не слишком быстрое занятие. Если есть возможность в разумное время иметь свежую копию - почему бы и нет. Вообще. Исходя из ваших ответов я бы сделал единую базу. Но остается шанс, что за кадром осталось нечто важное. ;) А так же я не работал с базами в несколько террабайт. На моем уровне опыта я бы решал вопрос с производительностью железным способом (естественно при этом внимательно прорабатывая каждый запрос в самой софтине). Заказчик1А жарптица то рулит. Но боюсь не потянет она базы в десятки терабайт. Врать не буду не знаю. Вот разве, что статейка: http://www.ibase.ru/devinfo/fb1tb.htm ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2011, 14:32 |
|
||
|
|

start [/forum/topic.php?fid=16&fpage=80&tid=1342748]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
48ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
55ms |
get tp. blocked users: |
2ms |
| others: | 247ms |
| total: | 394ms |

| 0 / 0 |
