Migracija sa MySQL-a na PostgreSQL

From RCUB
Jump to: navigation, search
(Dodao podnaslove)
Line 18: Line 18:
 
promeniti parametre konekcije.
 
promeniti parametre konekcije.
  
Ono što je bilo potrebno prepraviti su SQL skriptovi za kreiranje i  
+
U slucaju da se koriste Native upiti pod JPA-om, ili da se koristi JDBC, potrebno je
insertovanje podataka. Sve promene koje je trebalo obaviti na njima su  
+
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:
 
lepo dokumentovane na:
  
  http://www.markslade.name/Articles.html?a=9
+
http://www.markslade.name/Articles.html?a=9
  
 
Pored navedenih, naišli smo na još dve stvari:
 
Pored navedenih, naišli smo na još dve stvari:
  
1. U MySQL-u u insert statmentu za BOOLEAN polje je dozvoljeno staviti  
+
# U MySQL-u u insert statmentu za BOOLEAN polje je dozvoljeno staviti  
 
vrednost 1, u Postgresu mora '1' (pod apostrofima)
 
vrednost 1, u Postgresu mora '1' (pod apostrofima)
2. LONGBLOB u MySQL-u se escape-uje heksadekadno, a BYTEA u Postgresu  
+
# LONGBLOB u MySQL-u se escape-uje heksadekadno, a BYTEA u Postgresu  
 
oktalno
 
oktalno
  
Line 34: Line 35:
 
srpsko sortianje (zavisi od podešavanja locale-a prilikom kreiranja baze).
 
srpsko sortianje (zavisi od podešavanja locale-a prilikom kreiranja baze).
  
U petak nam se učinilo neviđen dobitak u ubrzanju na jednom složenom
+
==Performanse==
upitu (EAGER JOIN, 33 tabele) - od neverovatnih 12 puta. Merenje je
+
urađeno pod vrlo neravnopravnim uslovima, tako da rezultat nije ni
+
približan realnosti (izvinjenje Jovani Vuleti za dezinformaciju - ne
+
treba donositi važne zaključke u petak uveče).
+
  
Danas smo ponovili merenje pod koliko-toliko ravnopravnim uslovima (isti  
+
Merenje pod koliko-toliko ravnopravnim uslovima (isti  
server, isti skup podataka, isti upit, deset ponavljanja). Performanse
+
server, isti skup podataka, isti upit, deset ponavljanja) je pokazalo +30% u brzini u korist Postgresa.
za ovaj konkretan upit su bile +30% u korist Postgresa.
+
  
Ukoliko je potrebno još informacija, ili pomoć oko migracije, javite.
+
==Hijerarhija==
  
 
Obratite takođe pažnju, hijerarhija u Postgresu je baza, šema, tabela.  
 
Obratite takođe pažnju, hijerarhija u Postgresu je baza, šema, tabela.  
Line 50: Line 46:
 
Tako da je verovatno najlakše kreirati posebne baze i koristiti njihove  
 
Tako da je verovatno najlakše kreirati posebne baze i koristiti njihove  
 
default "public" šeme.
 
default "public" šeme.
 +
 +
==PSQL komande==
  
 
psql komande koje vam mogu biti od interesa:
 
psql komande koje vam mogu biti od interesa:
Line 58: Line 56:
 
\du - listanje svih korisnika
 
\du - listanje svih korisnika
  
CREATE USER username PASSWORD 'l0zinka' - kreiranje korisnika
+
CREATE USER username PASSWORD 'l0zinka'; -- kreiranje korisnika
GRANT ALL ON SCHEMA public TO username; - dodeljivanje privilegija
+
GRANT ALL ON SCHEMA public TO username; -- dodeljivanje privilegija
 +
 
 +
==Konfigurisanje servera==
  
 
Da bi ste omogućili pristup serveru preko JDBC-ja odnosno TCP/IP-ja,  
 
Da bi ste omogućili pristup serveru preko JDBC-ja odnosno TCP/IP-ja,  

Revision as of 14:11, 9 April 2008

Personal tools
Namespaces
Variants
Actions
Navigation
Toolbox