PostgreSQL има доста убедителни предимства, някои от които не се намират в никоя друга система за управление на бази данни. Тази статия ще очертае онези, които са най-интересни за разработчиците на Oracle, които искат да направят миграция или да проучат алтернативи за нова разработка.
За да предотвратите превръщането на тази статия в друг списък с функции на PostgreSQL, тя ще се придържа към функциите, които я отличават от Oracle конкретно, и предимствата, които тези разлики създават.
Федерация срещу обвивки на чужди данни
Oracle има функция, наречена Федерация, която позволява таблици от други бази данни да бъдат третирани като локални данни. PostgreSQL увеличава това до 11 с чужди обвивки на данни. Той е фантастично по-добър от системата за федерация, може да бъде свързан към всичко, което отдалечено наподобява данни, и не струва нищо като такси. Това прави PostgreSQL страхотна ETL платформа, дори ако всичко, за което го използвате, е поглъщането на данни.
plSQL срещу всичко друго
Oracle има вграден език за програмиране, наречен plSQL. PostgreSQL има някъде около 80 или така. Наистина ли. Системата за разширение на PostgreSQL се използва за създаване на процедурни езици като плъгини и има връзки за почти всеки език, за който се сетите. А ако няма, винаги можете да следвате заедно с Марк Уонг как да направите обвивка за личния си фаворит.
Приложно програмиране
Oracle предоставя API на приложението за комуникация с базата данни. PostgreSQL също така предоставя API за удобство и надеждни езици. Продуктът обаче е с отворен код, така че няма второкласни граждани за развитие. Можете да получите достъп до всичко, което PostgreSQL може да предложи, като включите заглавния файл във вашия проект. Правете каквото искате с него.
Интернационализация и локализация
Oracle предоставя инструментариум за глобализация. PostgreSQL е изграден от самото начало, за да разчита изцяло на добре познати и широко съвместими системни услуги за локализация. Може да използва всяко кодиране на знаци, съпоставяне и кодова страница, предоставени от операционната система.
Уеб разработка
Oracle признава съществуването на HTML чрез HTML DB. PostgreSQL поддържа естествено JSON, XML и включва Javascript като заден край език за кодиране, който можете да използвате едновременно с Java или всеки друг преден език по ваш избор.
Удостоверяване
Oracle има вградена система за удостоверяване (кимване тук към Proxy Auth, което е малко по-гъвкаво). PostgreSQL разчита на Host Based Authentication и SASL протоколи, за да включи всяка система за удостоверяване, която хостът може да поддържа, и няколко, които се включват директно в PostgreSQL. Това предоставя огромен набор от възможности за удостоверяване, заедно с потенциала за разтоварване на процеса на удостоверяване върху други машини.
Разширяемост
Oracle има система за приставки с предимно собствени плъгини. PostgreSQL има система за разширение, която се поддържа от широката общност, с хиляди налични плъгини.
Прочетете мащабируемост
Oracle има сравнително добра мащабируемост за вертикално четене. PostgreSQL може да създаде практически неограничен клъстер за четене. Броят на възлите е ограничен само от количеството ресурси, които искате да хвърлите в него.
Разходи
Трудно е да се победи „безплатно“, а Oracle дори не се опитва. Нека си признаем, Oracle е просто абсурдно скъп и нямат нищо против да ви таксуват отново за всеки отделен случай.
Това също не е линейно сравнение. Едно от най-големите предимства на PostgreSQL е, че можете да имате всички екземпляри, които искате, без допълнителни разходи. (Предполагам, че това е допълнителна цена от +$0,00 или умножете по $0,00, вие решавате).
Не е честно (спрямо PostgreSQL) да се сравнява цената на един екземпляр на Oracle с един екземпляр на PostgreSQL. След като опитате свободата на безплатното, ще бъде трудно да се върнете към заглушаването на всичко в един екземпляр, само за да намалите разходите.
Колко трябва да струва една временна база данни, която преобразува данните по пътя към склада? Мисля, че безплатното е достатъчно. Какво ще кажете за преходна база данни за отчитане? Ще взема безплатно и за това. Какво ще кажете за такъв, който е точката за поглъщане на данни за ETL? Безплатното е добро. Харесвам безплатно. Това е много, ъъъ... освобождаващо.
Ефективност
Не, чакай! Изслушайте ме за това. Вече споменах, че PostgreSQL може да създаде неограничен брой възли в клъстер за четене. Това може да намали цената на всяка конкретна операция за четене до почти нула. Но има и друг начин, по който PostgreSQL е по-ефективен от Oracle.
Тъй като PostgreSQL не струва нищо на възел, можете да го настроите по различен начин за всяко работно натоварване. Разбира се, можете да направите това и с Oracle, но ще плащате на възел за възможността да го настроите по този начин. Така че, ако искате да разграничите параметрите за настройка за вашия склад към OLTP към отчитане на езерото от данни, PostgreSQL прави това доста лесно и все пак е лесно за портфейла.
Разбира се, има много по-завладяващи функции в PostgreSQL, но вече написах тази статия преди няколко месеца. Кажете ми в коментарите, ако сте мигрирали към PostgreSQL по някаква друга причина.