В тази публикация искам да направя сравнение на високо ниво на PostgreSQL и MySQL.
Една от основните точки за продажба на PostgreSQL е лицензът. PostgreSQL е с отворен код, има лиценз GPL и е собственост на общността на PostgreSQL Global Development Group.
MySQL днес е собственост на Oracle и има 2 различни лиценза. Единият е с отворен код, другият е комерсиален. Това не означава, че ако искате да използвате MySQL за търговски проект, трябва да платите. Търговският лиценз предоставя платена поддръжка и допълнителен софтуер, изграден върху MySQL от Oracle.
Има напълно отворен код на MySQL, наречен MariaDB, който е много по-малко популярен по отношение на употреба и брандиране, тъй като няма същата история на MySQL, но е оптимална замяна, ако предпочитате MySQL, но сте притеснен за лицензирането.
Нека поговорим за функциите.
Повече или по-малко, наборът от функции както на MySQL, така и на PostgreSQL е еквивалентен. Единият може да прави нещо, което другият не прави, но говорим за много разширени функции, които не влизам тук.
И двете са много напреднали системи за управление на бази данни, които имат дълга история.
И двете поддържат стандарта SQL (не напълно, но голяма част) и добавят функции върху него. И двете осигуряват съответствие с ACID (атомност, консистенция, изолация, издръжливост).
И двете позволяват лесно създаване на репликация, и двете са много сигурни, и двете имат огромна общност около себе си за всеки проблем, който може да имате.
И двете имат голям набор от инструменти, изградени около тях.
Кое да изберете? Трудно е да се каже.
Освен ако не се нуждаете от една конкретна функция, внедрена в единия и нереализирана в другия, бих избрал тази, с която вече сте запознати.
Например, ако идвате от WordPress и сте взаимодействали с MySQL преди, можете просто да се придържате към него (или MariaDB).
Може също да зависи от платформата, на която искате да разположите софтуера си. Heroku например предоставя вградена управлявана PostgreSQL облачна база данни като услуга, която може да е много удобна вместо да управлявате собствен сървър на база данни.