-
Notifications
You must be signed in to change notification settings - Fork 27
Firebird vs Postgresql
vgv [20:30]
Firebird крутой!
Еще вопросы? :simple_smile:
Ну на самом деле, там сложная история
Сейчас, в 2016 году PG выглядит очень хорошо
и осталось мало областей где FB его бьет
Давайте даже так
FB - это настоящая, полноценная, клиент-серверная СУБД
не поделка типа sqlite и прочих
а настоящая СУБД с ACID транзакциями, поддерживает последние версии SQL и всё такое
с очень древней историей
ну, про историю, я думаю в вики хорошо написано
alex_r [20:33]
это да, но в вики про FB больше плохого, чем хорошего)
vgv [20:33]
ну, потому что мудачье писало, скорее всего
которое слышало звон
alex_r [20:34]
впрочем я не смотрел англоязычную вики, быть может там всё объективней
тем не менее - сейчас FB практически полностью вытеснена PG?
vgv [20:35]
из плюсов прямо сейчас над PG что я сходу могу назвать -
- отличная работа на windows (+ простота установки)
- embedded версия
- правда MVCC (тут даже PG немного посасывает)
- очень мало инструментов, но все очень хорошие
и по пунктам - про Windows - да, сейчас это сильно менее актуально, но лет 10 назад винды было сильно больше. И у разработчиков на машинах, и на конечных станциях
Представьте себе коробочный софт
sanykey [20:36]
Странно, что про FB никогда вообще не слышал, хоть она и древняя
vgv [20:36]
Где вы найдете под него linux-сервер? В 99% контор куда вы его будете продавать ничего подобного просто нет. Хорошо если там просто есть выделенная машина под базу, а чаще - берут самую мощную из рабочих станций и делают ее сервером
Поставить теткам из бухгалтерии в таком раскладе PG - нереально
И это сейчас, когда у PG есть инсталлятор для винды и всё такое
2) embedded-версия. Вообще киллер-фича, я не вспомню другую базу. Если очень грубо - у FB есть два дистрибутива - нормальный сервер и *.dll
Нормальный сервер - все понятно, установили, подключаемся по сети как обычно
Встроенный сервер - вы линкуетесь с этой dll и у вас прямо внутри программы СУБД Firebird
причем, никакая не урезанная версия
alex_r [20:39]
круто, как sqlite, но нормальная бд )
sanykey [20:39]
А почему бы тёткам из бухгалтерии не поставить mssql или mysql?
vgv [20:39]
А почему бы тёткам из бухгалтерии не поставить mssql или mysql?
кто им должен поставить?
Про embedded - это действительно так - у вас появляются транзации, конкурентный доступ - в общем, всё что есть у полноценного сервера
Более того, база данных, которую пишет emdedded полностью идентична по формату со взрослой версией
sanykey [20:40]
Не понял вопроса. а кто вышеописанную поставит?
dfatt [20:41]
я помню фаербёрд
vgv [20:41]
то есть, можно взять этот файл, подсунуть большому FB, поменять в прилодениях строку коннекта с localhost на какой-нибудь 192.169.0.100
и всё, ваше приложение начинает работать с сетевым FB
dfatt [20:41]
её до сих наверное различные динозавры используют
vgv [20:41]
к которому подключаются уже куча клиентоа, а не вы один
Не понял вопроса. а кто вышеописанную поставит? Инсталлятор вашей программы
sanykey [20:42]
ааа, всё, туплю. Встроенная бд.
vgv [20:42]
нет, не встроенная
sanykey [20:42]
тогда не понял в чём отличие?
vgv [20:42]
инсталлятор может поставить и полноценный сервер
от чего?
sanykey [20:42]
и тут круг замкнулся
dfatt [20:42]
https://coub.com/view/9wkwb
Coub
СЛОЖНА,СЛОЖНА. HARRRRRD.
by Kurt Comebain
vgv [20:43]
круг не замкнулся, вы вопрос задайте правильно
а я пока продолжу
3) правда MVCC (тут даже PG немного посасывает)
alex_r [20:43]
видимо sanykey про mysql говорил)
vgv [20:43]
да
я, например, не очень понимаю, почему в PG у меня, когда я делаю ALTER TABLE затыкаются чтения из этой таблицы
и меня это бесит на моих размерах баз
что мне еще нравится - у FB все DDL операции происходят в контексте транзакции
то есть
alter table bugaga add column hahaha varchar;
rollback;
и все, таблица bugaga не изменилась
у PG тоже многие DDL операции транзакционные. Многие, но не все
4) очень мало инструментов, но все очень хорошие
для FB есть, конечно, консольная утилита, называется isql
аналог постгресового psql
но есть и совершенная фантастика под названием IBExpert
она платная (но для ex-СССР - бесплатная) и она только под Windows, но когда ты разрабатываешь сложную логику в базе - очень удобная штука
alex_r [20:46]
да, про эту штуку слышал, хвалили
vgv [20:46]
например, в ней есть пошаговая отладка процедур
или такая штука как diff-баз
указываешь две базы и она делает тебе безопасный diff
который надо применить в целевой базе, чтобы накатить ее до состояния исходной
да, это GUI, да под винду, но очень удобная вещь
другое дело, что сейчас уже не так модно иметь богатую логику в базе
поэтому ценность этих утилит постепенно снижается
или, например, IBReplicator
в FB нет репликации из коробки, но есть отдельный платный инструмент
но он позволяет строить совершенно фантастические деревья репликации
не тупо “отсюда-сюда"
нет-нет
а типа
вот с этого мастера на эти три машины
с тех трех вот на эти, эти и эти
на эти всю базу, на эту - вот эти таблицы, на эти в обе стороны
и так далее
денег своих штука стоит совершенно однозначно
если вы строите что-то такое, развесистое
или, как простой пример
каждая собака знает что WAL - это основа целостности в СУБД(edited)
я не знаю откуда это пошло, в ВУЗ’ах что-ли учат
где-ли
однако в FB нет WAL
WAL - это write-ahead-log
так вот
alex_r [20:51]
а что тогда?
vgv [20:51]
и все начинают кричать обычно - “Ага, в FB нет WAL, значит там нельзя гарантировать целостность данных"
FB делает очень изящную штуку
вот у вас транзакция
большая такая, поменяла кучу данных в куче таблиц
на уровне движка базы, это значит что вы помодифили много страниц данных
(практически любая база хранит данные на диске в виде страниц - 4,8,16,32kb)
так вот
у FB есть специальная область в базе, где хранится статус транзакций
список вида “Номер транзакции -> статус"
статус это одно из четырех состояний - active, commited, rolled back и еще один, для 2pc вроде, не помню сейчас
у вас у вашей транзакции есть какой-то номер, пусть 123456789
каждое изменение записей, которые вы помодифили в этой транзакции, помечается ее номером
и вот, пришла пора писать это всё на диск
FB выстраивает страницы в таком порядке, чтобы страница со статусом транзакции была последней
последней, которая запишется на диск
то есть - сначала скидываем все эти сотни “грязных” страниц с данными, а последней страницей пишем этот (4/8/16/32 kb) блок со статусом этой транзакции
типа
123456789 => commited
и подумайте сами
что случится если сервер упадет до того, как он запишет эту последнюю страницу
а ничего - на странице статуса транзакций ваша транзакция не будет в статусе commited, а значит ее изменений нет
целиком
а не так что “какие страницы успели сбросить на диск - те и будут"
либо транзакция запишется вся, либо ничего
alex_r [20:59]
круто и достаточно очевидно
vgv [20:59]
но у PG есть как минимум 2 очень сильных плюса
точнее, один, но из него вытекают остальные
у PG коммьюнити сильно больше
прямо сильно
думаю, даже больше чем на порядок
а значит больше разработчиков
в том числе и contrib-модулей
больше пользователей
а значит гораздо больше советов/рецептов в инете
+ сейчас уже мало кого интересуют десктопные приложения
а раз у нас веб - то сервер на линкус
скорее всего
а значит нет проблем с установкой PG
alex_r [21:01]
т.е. в целом FB выбирают, когда нужна надежная бд под более-менее серьезные задачи?
vgv [21:02]
да, но PG в плане надежности совсем не хуже
я думаю что прямо сейчас FB выбирают те, кто точно знает что им надо FB
а остальные берут по дефолту постгрес(edited)
вот например я работал с FB лет 10, наверное
очень плотно
и я точно знаю что я с ней справлюсь
и без советов из инета
поэтому могу взять под новый проект
а если человек только выбирает - он сравнит то же количество ответов на stackoverflow(edited)
да или даже в локальном коммьюнити
в каком бы городе вы ни жили - скорее всего вокруг вас сильно больше людей кто знает PG чем FB
причем, надо понимать что я ни в коем случае не ругаю PG
я и с ним работаю уже лет 10, наверное
отличная штука
alex_r [21:05]
особенно на фоне MySQL?)
vgv [21:05]
ну, сейчас мускул тоже подтянулся, конечно
но когда я знакомился с ним - было тошно
особенно на фоне FB
и транзакции, и триггеры, и хранимые процедуры
да даже банальные генераторы
смотришь на mysql - Н-И-Х-Е-Р-А
alex_r [21:06]
:simple_smile:
@vgv: спасибо, теперь стало понятней "что за птиц" :simple_smile:
vgv [21:08]
все используют движок MyISAM без транзакций
а на вопрос “Ребяты, а как вы без транзакций-то?” отвечают “А зачем они? Мой сервер и мой PHP не падает"
но это, замечу, уже древние года
2003-2005-2007
где-то так
endurance [21:09]
а сейчас все пересели на innodb? там что-то про транзакции есть
alex_r [21:09]
не прошло и много лет)(edited)
vgv [21:09]
сейчас все уже, наверное, пересели на MariaDB
и слава богу
еще добавлю про PG/FB/MySQL(edited)
мое окружение сейчас - это web-проекты
как и у большинства здесь, наверное(edited)
и в web традиционно силен MySQL и PG
вот так сложилось
поэтому вы в принципе не услышите особенно много про FB
это все равно что ждать, что рядом с вами вдруг окажется знаток Фортрана или R
не окажется :simple_smile:
так и тут
поэтому мы варимся не в той среде где особенно много можно услышать про Firebird
поэтому может сложиться мнение что он умирает
endurance [21:12]
все уже, наверное, маловероятно xD
alex_r [21:12]
https://habrahabr.ru/post/267647/(edited)
так что да, кому надо - тот использует
vgv [21:13]
ну, например, ММВБ
Московская Межбанковская Валютная Биржа
alex_r [21:13]
Газпром
Магнит
Газпромбанк
Сибур
Аэрофлот
Почта России
Фармстандарт
Московская Биржа
Газпром автоматизация
Отисифарм
РКК Энергия
vgv [21:15]
+ еще вот какой - над FB работает много русских разработчиков
поэтому в случае действительно серьезных проблем можно обратится к ним напрямую
в Бразилии, кстати, FB очень любят и широко используют
однако, кто из нас силен в португальском языке и интересуется бразильским ИТ? )
alex_r [21:17]
всё что о ней известно - есть такая страна и вроде там экономика вверх попёрла)
vgv [21:17]
то есть - куда ни ткни, всё мимо web-разработчика читающего русские и англоязычные ресурсы
у них там серьезный курс на OpenSource везде
и в гос учреждениях тоже
а FB - отличная база
если посмотреть в список разработчиков FB - половина русские, вторая половина - бразильцы
утрирую, конечно, но не сильно
всё, надеюсь мое краткое освещение FB принесло пользу
всем спасибо :simple_smile:
4
alex_r [21:19]
сохраните, пожалуйста, диалог(монолог) )
хм, а FB как-то связана с Interbase?
vgv [21:23]
да
прямой наследник(edited)
однажды компания Borland открыла исходники Interbase 6.0
их тут же форкнули, назвали Firebird и понеслось
долгое время они даже по формату базы были совместимы
сейчас уже совсем нет, конечно