View source
From RCUB
for
Migracija sa MySQL-a na PostgreSQL
Jump to:
navigation
,
search
PostgreSQL se čita kao "Postgres Kju El" ili samo "Postgres". == JDBC parametri konekcije za PostgreSQL == JDBC connection string je oblika: jdbc:postgresql://netis-test.rcub.bg.ac.yu/e_university_v5 Default port je 5432, a drajver je: org.postgresql.Driver. == 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. Ono što je bilo potrebno prepraviti su SQL skriptovi za kreiranje i insertovanje podataka. Sve promene koje je trebalo obaviti na njima su lepo dokumentovane na: http://www.markslade.name/Articles.html?a=9 Pored navedenih, naišli smo na još dve stvari: 1. U MySQL-u u insert statmentu za BOOLEAN polje je dozvoljeno staviti vrednost 1, u Postgresu mora '1' (pod apostrofima) 2. 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). U petak nam se učinilo neviđen dobitak u ubrzanju na jednom složenom 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 server, isti skup podataka, isti upit, deset ponavljanja). Performanse za ovaj konkretan upit su bile +30% u korist Postgresa. Ukoliko je potrebno još informacija, ili pomoć oko migracije, javite. Obratite takođe pažnju, hijerarhija u Postgresu je baza, šema, tabela. JDBC string za konekciju prima kao parametar samo ime baze, a ne i šemu. Tako da je verovatno najlakše kreirati posebne baze i koristiti njihove default "public" šeme. psql komande koje vam mogu biti od interesa: \l - listanje baza podataka \c - izbor aktivne baze podataka \dn - listanje svih sema u izabranoj bazi \du - listanje svih korisnika CREATE USER username PASSWORD 'l0zinka' - kreiranje korisnika GRANT ALL ON SCHEMA public TO username; - dodeljivanje privilegija Da bi ste omogućili pristup serveru preko JDBC-ja odnosno TCP/IP-ja, potrebno je da u data/postgresql.conf navedete: listen_addresses = '*' # what IP address(es) to listen on; port = 5432 # (change requires restart) i da u data/pg_hba.conf dodate: # TYPE DATABASE USER CIDR-ADDRESS METHOD host mydb ognjen 147.91.4.66/32 md5
Return to
Migracija sa MySQL-a na PostgreSQL
.
Personal tools
Log in
Namespaces
Page
Discussion
Variants
Views
Read
View source
View history
Actions
Search
Navigation
Main page
Community portal
Current events
Recent changes
Random page
Help
Toolbox
What links here
Related changes
Special pages