Migracija sa MySQL-a na PostgreSQL
From RCUB
m |
|||
Line 1: | Line 1: | ||
− | + | 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. |