![]() |
|
Модераторы: LSD |
![]()
|
|
| everyone |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 218 Регистрация: 24.3.2004 Репутация: нет Всего: 4 |
Сейчас разрабатывается довольно крупный проект с точки зрения нагрузки и сложности БД.
Изначально было принято решение предельно придерживаться методологии написания запросов, при котором перенос с одной СУБД на другую обойдётся меньшей кровью. Для унификации запросов используется набор интерфейсов к БД - обёртки для SELECT, UPDATE, WHERE, и тд... С развитием проекта стало появляться большое количество запросов, которые проще, быстрее и производительнее было написать на нативном SQL. И сейчас сложилось ощущение, что решение об унификации было бессмысленным. Вопрос: Интересуют именно истории проектов и опыт. Есть ли вообще смысл в думать о какой-то ещё БД, если выбрана для разработки, скажем, PostgreSQL? И обратный - чем вы руководствуетесь, когда принимаете решение, поддерживать несколько БД? --------------------
Что написал, то написал (Пилат) |
|||
|
||||
| Zloxa |
|
||||
|
Чо? ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3473 Регистрация: 12.9.2008 Репутация: 11 Всего: 161 |
Обоснование таких решений лежит вне технической плоскости. Айтишники могут лишь оценить каковы тудозатраты на поддержание мультиплатформенности. Маркетологи должны оценить покроет ли профит эти издержки. К маркетологам же у меня у меня предвзятое отношение, что подпитывает уверенность что их решение будет - да, окупится, но эта оценка, вероятнее всего, в ходе проверки практикой, окажется ошибочной.
Здесь дело не только в запросах. Если у проекта достаточно высоки требования к согласованности данных, то для разных платформ их, скорее всего, придется обеспечивать по разному. Попытка унификации этого процесса, фактически означает вынос на прикладное звено обеспечения согласованности данных, замена нативно-датабазных функций собственным велосипедом. Вплоть до самопального обеспечения изоляции транзакций. И именно это, с моей точки зрения, очень трудоемко и, как правило, получается менее эффективно чем то же самое нативными средствами. Простой тому пример - в постгре запись не блокирует чтение. А в МС - блокирует. Т.е. в постгре вполне нормальная операция - полное обновление справочника, скажем номенклатуры, в одной транзакции да при работающих кассах. Более того, в одной транзакции будет выполнять эту операцию прдпочтительнее. В MS же, при таком подходе, кассы, читающие обновляемый справочник встанут на блокировке до фиксации пишущей транзакции. Вполне может оказаться что для MS и постгра придется выбрать разную архитектуру для одного и того же решения, либо же придумать универсальную, которая будет, по факту, одинаково плохо работать как с МС так и с постгром. Это сообщение отредактировал(а) Zloxa - 6.11.2013, 09:24 -------------------- Достоверно известно, что 89% людей доверяют статистике взятой с потолка |
||||
|
|||||
| everyone |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 218 Регистрация: 24.3.2004 Репутация: нет Всего: 4 |
Из сложившейся ситуации и выше сказанного я прихожу к выводу, что проект выходящий за пределы, скажем, возможностей ActiveRecord лучше писать на нативе.
Как исключение из правил мне приходит в голову только приложения-утилиты для работы с БД. И то... --------------------
Что написал, то написал (Пилат) |
|||
|
||||
| Zloxa |
|
|||
|
Чо? ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3473 Регистрация: 12.9.2008 Репутация: 11 Всего: 161 |
Любые кейвалсторы, не подразумевающие аналитики. Любые системы, для которых временная(ну или перманентная) рассогласованность данных не критична. Таких задач, в общем - не так уж и мало. :unkwn -------------------- Достоверно известно, что 89% людей доверяют статистике взятой с потолка |
|||
|
||||
| everyone |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 218 Регистрация: 24.3.2004 Репутация: нет Всего: 4 |
Да, раз зашёл разговор про кейвалсторы.
Если основная база PostgreSQL, я стараюсь использовать тип таблиц memory. В некоторых проектах я подключал Redis. Особых преимуществ при подключении ещё одного хранилища(в данном случае Redis) я не нашёл. И возникает недостаток в качестве появления ещё одного синтаксиса работы с данными. Не могу просто обосновать применение каких-то отдельных средств для хранения этих самых "рассогласованных данных". --------------------
Что написал, то написал (Пилат) |
|||
|
||||
| Zloxa |
|
|||
|
Чо? ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3473 Регистрация: 12.9.2008 Репутация: 11 Всего: 161 |
everyone, что-то мне подсказывает что у тебя есть желание похоливорить. Это же самое мне подсказывает что в этом топике холивара не получится.
Мне кажется это было бы не плохим решенеим - попросить LSD перенести эту тему в холивары и дать ей какой нибудь более провокационный заголовок, но сильно смущает тот факт, что посещаемость форума спала и даже там холиварчик угаснет не разгоревшись. Это сообщение отредактировал(а) Zloxa - 5.11.2013, 17:24 -------------------- Достоверно известно, что 89% людей доверяют статистике взятой с потолка |
|||
|
||||
| everyone |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 218 Регистрация: 24.3.2004 Репутация: нет Всего: 4 |
на холивар просто нет времени сейчас
на счёт кейвалсторов вопрос действительно возникает часто, и решение принимается как бог на душу положит --------------------
Что написал, то написал (Пилат) |
|||
|
||||
| Fortop |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2200 Регистрация: 13.11.2007 Где: Донецк Репутация: нет Всего: 42 |
По совокупности условий - ответ нет. Достаточно лишь вменяемо отделить DBAL Но вот над выбором конкретной БД стоит подумать хорошо и заранее -------------------- Мир это Я. Живее всех живых. |
||||
|
|||||
| everyone |
|
||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 218 Регистрация: 24.3.2004 Репутация: нет Всего: 4 |
Хотелось бы узнать подробнее о том, что вы называете вменяемостью. В данном случае запрос формируется полностью на SQL. DBAL используется при подготовке запроса(связывание переменных, проверка соответствия типов), при исполнении и выборке данных(различные фетчи). То есть довольно единообразные функции. Даже работу с JSON стараемся перенести на сторону БД, насколько это возможно. Абстрактный слой лепить сюда даже не пытались.
В этом я убедился ещё раз, спасибо. --------------------
Что написал, то написал (Пилат) |
||||
|
|||||
| Fortop |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2200 Регистрация: 13.11.2007 Где: Донецк Репутация: нет Всего: 42 |
Чтобы ваши запросы не были раздерганы по сотням разных мест. Сосредоточьте их все в моделях как минимум. -------------------- Мир это Я. Живее всех живых. |
|||
|
||||
![]()
|
| Правила форума "Общие вопросы по базам данных" | |
|
|
Данный форум предназначен для обсуждения вопросов о базах данных не попадающих под тематику других форумов:
Данный форум не предназначен для:
Если вы не соблюдаете эти правила, не удивляйтесь потом не найдя свою тему/сообщение.
Полезные советы: Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, LSD, Zloxa. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | СУБД, общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |