Migracija sa MySQL-a na PostgreSQL
Timovi koji imaju nameru da MySQL zamene sa PostgreSQL-om, ovaj dokument mogu da koriste kao polaznu osnovu. PostgreSQL se čita kao "Postgres Kju El" ili samo "Postgres". Takodje, pogledajte stranicu PostgreSQL
Promene na aplikaciji
U slučaju da se koristi JPA za apstrakciju pristupa bazi, i da se koriste samo JPQL upiti, nikakve promene na aplikaciji nisu potrebne. Jedino je potrebno promeniti parametre konekcije.
U slucaju da se koriste Native upiti pod JPA-om, ili da se koristi JDBC, potrebno je nekoliko zahvata na MySQL upitima (npr. skriptovi za kreiranje i insertovanje podataka) da bi bili kompatibilni sa Postgresom. Sve promene koje treba obaviti na njima su lepo dokumentovane na:
http://www.markslade.name/Articles.html?a=9
Pored navedenih, naišli smo na još dve stvari:
- U MySQL-u u insert statmentu za BOOLEAN polje je dozvoljeno staviti vrednost 1, u Postgresu mora '1' (pod apostrofima)
- LONGBLOB u MySQL-u se escape-uje heksadekadno, a BYTEA u Postgresu oktalno
Pored toga, vredi pomenuti da je UTF-8 podržan i u Postgresu, kao i srpsko sortianje (zavisi od podešavanja locale-a prilikom kreiranja baze).
Performanse
Vrlo površno merenje pod koliko-toliko ravnopravnim uslovima (isti server, isti skup podataka, isti upit, deset ponavljanja) je pokazalo +30% u brzini u korist Postgresa.