Postgres vs Firebird
Я хочу использовать Firebird или Postgres в своем следующем проекте разработки... во многом потому, что оба доступны под лицензией BSD.
Я нашел отличное сравнение двух баз данных на http://web.archive.org/web/20100305134128/http://www.amsoftwaredesign.com/pg_vs_fb
Но это сравнение неплохое 4+ лет, и с тех пор обе базы данных прошли долгий путь.
Кто-нибудь может обновить таблицу сравнения, чтобы иметь отношение к текущим версиям как Firebird, так и Postgres... или иметь ссылку на сайт, который делает хорошее недавнее сравнение между двумя базами данных?
Ответы
Ответ 1
Вам нужно выбрать технологию, например, RDBMS (только), при сравнении списка функций, но при ответе на такие вопросы:
- достаточно ли он достаточно для ваших нужд?
- подходит ли он для всех ваших потребностей?
- что такое перспективы/поддержка/разработка/документация?
Для меня FB - не лучший выбор. Я могу указать две истории:
- Я написал ограничение на таблицу. Пользователи добавляют некоторые строки в таблицу. Через некоторое время пользователь пытается добавить еще одну строку, но FB жалуется на ограничение. Что не так? Эта новая строка, несомненно, находится под ограничением. Проблема заключается в последней строке, которая была добавлена перед ней! Эта строка была добавлена некоторое время назад, это было неправильно, и до сих пор это в БД, и кто знает, сколько неверных данных теперь находится в БД. Очень плохо. FB неправильно использует ограничения.
- Я написал хранимую процедуру (SP). FB хранит его в БД, FB может запускать его, и он работает - выберите данные, как ожидалось. Никто не предупреждает. Затем резервное копирование выполняется без ошибок. И только при восстановлении FB жалуется, что что-то не так с SP и... что... у вас нет восстановимой резервной копии сейчас.
Я могу указать еще два или три, но мне достаточно сказать: нет, FB не мой выбор, это не RDBMS, это игрушка.
И у них плохая документация. На самом деле нет фактических ссылок с каждой версией. Когда люди спрашивают на форумах: что представляет собой полный список функций в выпуске XX? Стандартный ответ: взять список из последней официальной версии Interbase и добавить (удалить) из всех последующих выпусков "примечания к выпуску".
И у них есть странная стратегия поддержки/развития. Они работают над тем, что им интересно, по глубоким техническим вопросам, а не по тому, что действительно важно или раздражает пользователей.
Ответ 2
Я работаю с Firebird в течение длительного времени и рекомендую НЕ использовать его каким-либо образом. У них много фундаментальных проблем, которых нет у Postgres. Не сказать много, просто скажите, что у них еще нет команды "изменить вид". Чтобы изменить представление, вы должны отбросить и воссоздать его и все представления в зависимости от него. Это одна из многих недостатков FB. Неправильно сравнивать эти БД Двигатели вообще. У меня было много случаев, когда база данных Firebird была повреждена даже без потери мощности, с обычными рабочими нагрузками и т.д. Если вы все еще решаете, не используйте Firebird! Если вы уже выбрали FB, вы запомните мои слова через некоторое время:)
Ответ 3
Я могу прокомментировать Firebird. После первого сравнения изменилось следующее:
Доступна многопоточная архитектура? Да (суперсервер)
На самом деле, Classic Server является предпочтительным типом сервера для масштабируемости. Начиная с Firebird 2.5 существует также архитектура под названием SuperClassic. Я написал небольшую заметку о различиях: SuperServer, ClassicServer или SuperClassic?
Сохраняет информацию о транзакциях в том же файл как данные? Да (красным)
Я не вижу, как это может быть проблема, которая должна быть написана красным цветом. Firebird использует тщательную запись
чтобы структура базы данных всегда была последовательной.
Временные таблицы? Нет
Доступно в Firebird 2.1. Примечания к выпуску
Богатые встроенные функции? Нет
Firebird 2.1 также улучшил это. Примечания к выпуску
Несколько методов аутентификации (т.е. LDAP) Нет
Несмотря на отсутствие поддержки LDAP, Firebird 2.1 допускает проверку подлинности Windows. Примечания к выпуску
Создать определенные пользователем типы? Нет
Я не уверен, что здесь означает автор, но Firebird имеет домены навсегда.
Требовать резервное копирование/восстановление в компактное? да (красным)
спорно. База данных используется повторно. Мне трудно представить себе необходимость сокращения базы данных в процессе производства.
Использовать регулярные выражения POSIX в запросах? Нет
Firebird 2.5 поддерживает регулярные выражения. Примечания к выпуску
Мониторинг базы данных? Нет
Да, Firebird 2.1 поддерживает мониторинг базы данных через системные таблицы. Firebird 2.5 добавляет поддержку средств отслеживания.
Я знаю, по крайней мере, один отличный инструмент мониторинга базы данных для Firebird.;)
Возможность запрашивать базы данных на других локальных или удаленных серверах. Нет
Firebird 2.5 может запрашивать удаленные базы данных. Примечания к выпуску
Ответ 4
Еще одно недавнее сравнение (2008):
Ответ 5
AFAIK, каждый No в столбце Postgres страницы, которую вы указали, по-прежнему является No, хотя базы данных только для чтения могут быть эффективно реализованы, предоставляя только разрешения выбора для всех таблиц в базе данных. Тем не менее, есть много новых функций с 8.2. Некоторые от 8.4:
- Функции окна
- Общие выражения таблиц и рекурсивные запросы
- Параметры по умолчанию и переменные для функций
- Параллельное восстановление
- Разрешения столбцов
- Настройки локальной базы данных
... и некоторые из 8.3:
- Полнотекстовый поиск интегрирован в базовую систему баз данных.
- Поддержка стандарта SQL/XML, включая новые операторы и тип данных XML
- Перечислимые типы данных (ENUM)
- Массивы составных типов
- Тип данных универсального уникального идентификатора (UUID)
- Добавить контроль над тем, будут ли NULL сортировать первый или последний
- Обновляемые курсоры
- Параметры конфигурации сервера теперь могут быть установлены на основе каждой функции.
- Пользовательские типы теперь могут иметь модификаторы типов
... есть ли у Firebird это, я не знаю.
Ответ 6
Резервные копии на основе файловой системы
Да (Postmaster должен быть остановлен)
неверно. начиная с 8.1 (если я правильно помню), можно активировать WAL-архивирование, а затем создавать резервные копии на основе файловой системы, не закрывая ничего. Ищите PITR (восстановление по времени) в документах для получения дополнительной информации
Ответ 7
Одна важная вещь - развертывание:
- Firebird не работает с ext3 в Linux, вы должны использовать XFS или что-то подобное.
- Насколько я знаю, PostgreSQL по-прежнему не работает на серверах Windows.
Ответ 8
Для тех, кто использует Firebird, я бы предложил прочитать Заметки о выпуске Firebird 2.1, чтобы понять проблему с повреждением базы данных по сравнению с более старыми версиями Firebird работает на Linux.
Короче говоря, это связано с ошибкой в Linux. Для более старых Firebird, обходной путь заключается в монтировании затронутой файловой системы с опцией синхронизации. Проблема исправлена в FB2.1.