Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

MySQL dump sa relacijama (da sacuva foreign keys)

[es] :: MySQL :: MySQL dump sa relacijama (da sacuva foreign keys)

[ Pregleda: 2327 | Odgovora: 13 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Milantex
Milan Tair
Beograd

Član broj: 137126
Poruke: 60
*.adsl-a-1.sezampro.yu.

Sajt: www.milantex.info


+1 Profil

icon MySQL dump sa relacijama (da sacuva foreign keys)14.06.2010. u 18:13 - pre 168 meseci
Pozdrav svima,

Jos jednom ja sa kratkim, a verovatno banalnim pitanjem na ES.

Napravio sam bazu od 30 tabela (skoro sve su u relacijama) i kada preko phpMyAdmin-a DUMP-ujem bazu, jedini nacin na koji dobijem informacije o tih nekih 90ak relacija (sve su 1:N), je da mi bdu spisane u komentarima ispod CREATE TABLE... SQL-a u generisanom DUMPu.

Najiskrenje, moja je greska sto sam bazu poceo da pravim u phpMyAdmin-u umesto u MySQL Workbench-u ili DB Designer-u, ali sta je tu je.
Imam razvijenu bazu, radi sa odradjenom apliakcijom u PHP-u i treba mi mogucnost da odradim neku vrsu backup-a ili DUMPa da bih je prebacio na drugi server, ali da mi se foreign keys zadrze i ponovo uspostave kada se tabele beze ponovo izgrade na drugom serveru, a da ne moram rucno ponovo da ih montiram.

Pitanje: Da li postoji jednostavan i lak nacin, mozda upit, da izvezem strukturu (sa kljucevima i relacijama)?

Hvala unapred na odgovoru, Milan.
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.31.24.217.adsl2.beograd.com.

Sajt: mysql.rs


+2377 Profil

icon Re: MySQL dump sa relacijama (da sacuva foreign keys)14.06.2010. u 21:58 - pre 168 meseci
vidi ti komentari .. to je ok :) - pogledaj http://dev.mysql.com/doc/refman/5.5/en/comments.html

kada imas komentar u formatu:

/*! MySQL-specific code */

to onda nije bas "komentar" ... fora je da se sve sto nije "standardan" SQL vec je mysql extenzija ili mysql "sintaksa koja nije po standardu" ili sta vec ubaci u kod te ako to pustis na mysql-u sve ce lepo da se izvrsi a ako ga pustis na nekom drugom serveru nece izbaciti gresku ...

takodje ako odma na ! zalepis brojku u formatu Mmmbb to znaci da ce samo mysql te verzije (M.mm.bb) ili noviji izvrsiti to u komentaru ... dakle ako imas

Code:

SELECT /*!50112 SQL_NO_CACHE */ `f1` FROM `t1` WHERE `x`>`y`;


na mysql-u 5.0.30 ce se izvrisiti kao:

Code:

SELECT `f1` FROM `t1` WHERE `x`>`y`;


a na na 5.1.12 i novijim ce se izvrsiti kao

Code:

SELECT SQL_NO_CACHE  `f1` FROM `t1` WHERE `x`>`y`;


nadam se da ti ovo daje odgovor na pitanje zasto su ti relacije u "komentarima"
 
Odgovor na temu

Milantex
Milan Tair
Beograd

Član broj: 137126
Poruke: 60
*.adsl-a-1.sezampro.yu.

Sajt: www.milantex.info


+1 Profil

icon Re: MySQL dump sa relacijama (da sacuva foreign keys)15.06.2010. u 09:51 - pre 168 meseci
Vidi,

Ja dobijem ovo kada DUMP-ujem tabele:

Code:
CREATE TABLE `payments` (
  `id` int(20) unsigned zerofill NOT NULL AUTO_INCREMENT,
  `user` int(11) unsigned zerofill NOT NULL,
  `date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `value` float NOT NULL,
  `verified` tinyint(1) NOT NULL DEFAULT '0',
  `verifier` int(11) unsigned zerofill DEFAULT NULL,
  `note` text,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 COMMENT='Table of payments' AUTO_INCREMENT=20344;

-- RELATIONS FOR TABLE payments:
--   user
--       users -> id
--   verifier
--       users -> id
--


I ovo dole se ne izvrsi. Tako mi phpMyAdmin generise SQL DUMP ( + vrednosti, ali njih nisam ubacio ovde :p )

Kada ovo izvrsim preko istog phpMyAdmin-a na drugom serveru, dobijem sve tabele, procedure, funkije, views-e itd. ali nikako ne dobijem sve vezano relacijama i naravno nista ne radi.

Cak i kada preko MySQL Workbench-a inportujem bazu preko reverse engineering-a dobijem samo tabele bez veza, a lepo i jasno postoje kao FOREIGN KEY xxx REFERENCES xxx kada sam pravio tabelu, samo sto nece da se DUMP-uje CREATE table kod na taj nacin.
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.31.24.217.adsl2.beograd.com.

Sajt: mysql.rs


+2377 Profil

icon Re: MySQL dump sa relacijama (da sacuva foreign keys)15.06.2010. u 18:48 - pre 168 meseci
sta dobijes kada izvrsis

SHOW CREATE TABLE `payments`;

?
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.31.24.217.adsl2.beograd.com.

Sajt: mysql.rs


+2377 Profil

icon Re: MySQL dump sa relacijama (da sacuva foreign keys)15.06.2010. u 18:49 - pre 168 meseci
MyISAM !!!!!!!!!!!!!!!!!

myisam ne podrzava relacije !!!!!!!!

znaci - u samoj bazi je nemoguce da ti stoje foreigh key's ... moguce je samo da ti je te relacije phpmyadmin stavio u komentare same tabele
 
Odgovor na temu

Milantex
Milan Tair
Beograd

Član broj: 137126
Poruke: 60
*.adsl-a-1.sezampro.yu.

Sajt: www.milantex.info


+1 Profil

icon Re: MySQL dump sa relacijama (da sacuva foreign keys)16.06.2010. u 12:38 - pre 168 meseci
Code:
CREATE TABLE `payments` (
 `id` int(20) unsigned zerofill NOT NULL AUTO_INCREMENT,
 `user` int(11) unsigned zerofill NOT NULL,
 `date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
 `value` float NOT NULL,
 `verified` tinyint(1) NOT NULL DEFAULT '0',
 `verifier` int(11) unsigned zerofill DEFAULT NULL,
 `note` text,
 PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT= 20414 DEFAULT CHARSET=utf8 COMMENT='Table of payments'
Nisam znao da MyISAM ne podrzava relacije.

Koji engine tip tabela da koristim onda? InnoDB ?

Aplikacija koja radi sa ovom bazom uglavnom ravnomerno vrsi select, kao i insert i update. Delete se ne vrsi skoro nikada, osim kod administracije. Svi podaci se uvek cuvaju radi statisticke obrade itd.

Da li ce InnoDB praviti problema kada baza bude veca od... recimo 350MB, a sada je oko 200MB, stim da je MyISAM.
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.31.24.217.adsl2.beograd.com.

Sajt: mysql.rs


+2377 Profil

icon Re: MySQL dump sa relacijama (da sacuva foreign keys)16.06.2010. u 12:45 - pre 168 meseci
da, innodb podrzava relacije

300M je smesna velicina baze tako da nemoj da brines
 
Odgovor na temu

Milantex
Milan Tair
Beograd

Član broj: 137126
Poruke: 60
*.adsl-a-1.sezampro.yu.

Sajt: www.milantex.info


+1 Profil

icon Re: MySQL dump sa relacijama (da sacuva foreign keys)16.06.2010. u 13:29 - pre 168 meseci
Ne ne, znam da je 350MB malo. Za ovakvu apliakciju kakva je ova, to je tacno koliko treba da bude.

Ovih uplata (tabela ciji je DUMP bacen gore) ima oko 20ak hiljada, a razmenjenih poruka kroz B2B msg sys oko 100ak hiljada itd. Ni jedna nije toliko puna da se brinem, a posto znam da je MyISAP brza, pitam samo koliko mogu da ocekujem da mi sa InnoDB-om responce baze bude usporen?

Mislim, nije da imam neko drugo resenje, meni i sa MyISAP engine-om radi kada JOIN-ujem polja nekih tabela koje su phpMyAdmin-om stavljena u relacije (Designer phpMyAdmin-a vidi te veze) i sa InnoDB-om ocekujem da ce moci konacno da se radi normalan DUMP, no brinem zbog eventualnog dodatnog opterecenja.

Da li da ocekujem da radi sporije ili brze nakon promene?

Lep pozdrav, Milan.
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.31.24.217.adsl2.beograd.com.

Sajt: mysql.rs


+2377 Profil

icon Re: MySQL dump sa relacijama (da sacuva foreign keys)16.06.2010. u 15:14 - pre 168 meseci
Citat:
Milantex
MyISAP brza, pitam samo koliko mogu da ocekujem da mi sa InnoDB-om responce baze bude usporen?

myisam je brzi - doduse zavisi za sta ... ako imas mnogo konkurentnih update-a, innodb je brzi !!!

Citat:

Mislim, nije da imam neko drugo resenje, meni i sa MyISAP engine-om radi kada JOIN-ujem polja nekih tabela koje su phpMyAdmin-om stavljena u relacije (Designer phpMyAdmin-a vidi te veze) i sa InnoDB-om ocekujem da ce moci konacno da se radi normalan DUMP, no brinem zbog eventualnog dodatnog opterecenja.


1. te veze koje vidis u dizajneru su "komentari" .. dakle phpmyadmin je samo zapamtio da si ti to "virtualno" povezao .. bilo / ne bilo tih veza mysql -u je svejedno, dakle te veze ne postoje !!
2. da bi radio JOIN nije neophodno da imas strane kljuceve. Ono sti ti InnoDB nudi pored sintakse za strane kljuceve je da ti odrzava referencijalni integritet + ima transakcije (myisam nema ni transakcije niti moze da odrzava referencijalni integritet baze)
3. dump ti daje ono sto je u bazi, ne postoji "normalan dump" - to sto u dampu nema stranih kljuceva je zato sto oni u bazi sada ne postoje !!! dakle ako to prebacis na drugi sistem radice IDENTICNO kao i sada, potpuno nebitno da li ce ovaj ili onaj dizajner "videti sta si ti zamislio"

Citat:

Da li da ocekujem da radi sporije ili brze nakon promene?


ako prebacis to na innodb, sa 350M bazom i recimo 300M indexa .. budzni innodb_buffer_pool_size na 1G (ako imas slobodnog rama) i nemo se sekiras :) cela baza ce ti biti izkesirana u ramu
 
Odgovor na temu

Milantex
Milan Tair
Beograd

Član broj: 137126
Poruke: 60
*.adsl-a-1.sezampro.yu.

Sajt: www.milantex.info


+1 Profil

icon Re: MySQL dump sa relacijama (da sacuva foreign keys)16.06.2010. u 16:53 - pre 168 meseci
Citat:
bogdan.kecman: ako prebacis to na innodb, sa 350M bazom i recimo 300M indexa .. budzni innodb_buffer_pool_size na 1G (ako imas slobodnog rama) i nemo se sekiras :) cela baza ce ti biti izkesirana u ramu


Hvala!

Onda cu prebaciti na lokal radi probe i stavicu na InnoDB, pa u tom slucaju mogu i malo slozenije da odradim. Inace mi je event driven programiranje u glavi uvek na prvom mestu, tako da cu moci da odradim slucaj sta da se desava na update itd. vezno za rekorde u tabelama.

Sto se rama tice, nije problem. Imam 8GB na raspolaganju - koliko oduzme OS + ostatak servisa i demona koji rade, no svakako ce u normalnom okruzenju to biti manje, jer ce ipak raditi samo shell bez GUIa :)

Hvala puno! Ovo mi dosta znaci, a svakako cu morati da obavim neki ozbiljan "relearn" baza podataka, jer sam manje vise NULL2UP u tom polju :)

Lep pozdrav, Milan.

P.S. Hvala za link u potpisu. ;]
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.31.24.217.adsl2.beograd.com.

Sajt: mysql.rs


+2377 Profil

icon Re: MySQL dump sa relacijama (da sacuva foreign keys)16.06.2010. u 20:26 - pre 168 meseci
nema na cemu...

p.s. koji link ?!
 
Odgovor na temu

Milantex
Milan Tair
Beograd

Član broj: 137126
Poruke: 60
*.adsl-a-1.sezampro.yu.

Sajt: www.milantex.info


+1 Profil

icon Re: MySQL dump sa relacijama (da sacuva foreign keys)16.06.2010. u 23:17 - pre 168 meseci
Citat:
bogdan.kecman:
nema na cemu...
p.s. koji link ?!


Tvoj blog na http://www.mysql.rs
Sa obzirom da sam self thought progamer 100%, tako i za baze, ono oko normalizacije mi je bilo zanimljivo.
Provalio sam da sam od (tabela sa 1000 polja) i mod I, sam presao na nf.III ne znajuci ni da postoji :)
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.31.24.217.adsl2.beograd.com.

Sajt: mysql.rs


+2377 Profil

icon Re: MySQL dump sa relacijama (da sacuva foreign keys)17.06.2010. u 11:08 - pre 168 meseci
ah opustencija .. meni su ugaseni potpisi na es-u pa ne vidim ni moje ni tudje potpise zaboravio sam da sam to negde stavio u nekom setovanju :D .. na zalost malo sam zakocio, slab sam sa vremenom da tamo malo vise pisem, al bice vremena :)
 
Odgovor na temu

Milantex
Milan Tair
Beograd

Član broj: 137126
Poruke: 60
*.adsl-3.sezampro.yu.

Sajt: www.milantex.info


+1 Profil

icon Re: MySQL dump sa relacijama (da sacuva foreign keys)17.06.2010. u 16:39 - pre 168 meseci
Ima korisnih tekstova tamo. Svaka cast.
 
Odgovor na temu

[es] :: MySQL :: MySQL dump sa relacijama (da sacuva foreign keys)

[ Pregleda: 2327 | Odgovora: 13 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.