[ pottaman @ 01.03.2010. 11:35 ] @
recimo da obe tabele imaju preko 10000 upisa...

koji je najefikasniji nacin pronalaska razlicite vrednosti bilo kojeg polja tabele1 u odnosu na tabelu2 ???

resenje mora da se slaze sa PHP, MySql tehnologijom...

unapred hvala

poz
[ bogdan.kecman @ 01.03.2010. 11:48 ] @
cek - da li ti treba da uporedis da su tabele iste ili ti treba da uporedis dve tabele i nadjes razlicite ...

ako samo hoces da vidis da li su tabele iste .. checksum napravis za tabelu pa uporedis ... za myisam imas http://dev.mysql.com/doc/refman/5.0/en/checksum-table.html da napravis checksum, za innopdb moras 3rd party: http://www.maatkit.org/doc/mk-table-checksum.html

ako hoces da "izvadis slogove koji nisu isti" .. onda je to na zalost ...

Code:

select pk_id from t1 join t2 using (pk_id) where 
t1.a <> t2.a or
t1.b <> t2.b or
t1.c <> t2.c or 
...
t1.z <> t2.z


neko "pametnije" resenje - tesko .. eventualno da napravis sp koji ce sam da izgenerise ovaj upit .. al .. opet ..pitanje sta ti tacno treba
[ pottaman @ 01.03.2010. 11:55 ] @
Ono sto mi tacno treba je da se uporede podaci iz ove dve tabele i ako je nesto novo u tabeli2 u odnosu na tabelu1 da se to izmeni u tabeli1
[ pottaman @ 01.03.2010. 11:56 ] @
i samo da dodam da struktura ove dve tabele nije ista ali tabela1 ima sva polja koja ima i tabela2
[ bogdan.kecman @ 01.03.2010. 12:02 ] @
nista onda - select ... nema ti druge .... ako imas "gotove tabele" i treba to da uradis jednom ...
ako su to dve tabele na istom serveru ... onda napravis trigger da kada se radi update jedne - odradis update i te druge
[ pottaman @ 01.03.2010. 12:15 ] @
ne postoji nista pametnije?! :D

tako mi trenutno radi i htio bih da ubrzam, ide red po red i uporedjuje polje po polje ali...
[ bogdan.kecman @ 01.03.2010. 12:25 ] @
na zalost ... ne ...

mozes da
1. da sa trigerom upisujes izmene direkt u drugu tabelu
2. da sa trigerom upisujes izmene u neku "desetu" tabelu pa onda jednom dnevno da te izmene koje imas snimljene u "desetoj" tabeli spucas u tu "drugu" tabelu i izbacis ih iz "desete" ..

ali to zahteva malo vece izmene u aplikaciji/bazi ... ali ti generalno ceo taj koncept poredjenja nije bas 1/1 ... zato ti i resenje za taj koncept nije kako treba ... no .. tu sad ne vredi ulaziti u detalje
[ pottaman @ 01.03.2010. 12:49 ] @
ja tabelu2 dobijam u odredjenom intervalu koja je replikacija jedne druge baze. ono sto meni treba je da se podaci sto pre nadju u tabeli1 a u tabeli1 se nalaze podaci i iz drugih izvora sto znaci da samo update dolazi u obzir nikakav drop ili slicno... ako citava promena koncepta ali sa ovom logikom moze da nekako da ubrza spreman sam na promenu...
[ bogdan.kecman @ 01.03.2010. 13:01 ] @
generalno - uvek moze da se napravi koncept da to radi kako valja :D pitanje samo dal umemo da dodjemo do njega ili ne :D ...

ovako u odnosu na to sto si do sada rekao ... ja kapiram da se tebi db1.t2 menja tako sto je db1 slave nekom tamo dbX serveru i da ti hoces da db1.t1 menjas u odnosu na promene u db1.t2.

prvo sto mi pada na pamet su trigeri (kapiram da imas 5.x ?) sto znaci da ti na db1.t2 turis trigger na update, insert i delete koji ce da odradi odma promenu u db1.t1 tako da time zadovoljavas ono "da se podaci sto pre nadju u tabeli1" posto ce se naci tamo "cim" stignu u db1.t2

ne znam da li si radio do sada sa trigerima .. imas odlican primer http://www.shinguz.ch/MySQL/mysql_mv.html

[ Shinhan @ 02.03.2010. 07:20 ] @
Izvini za glupo pitanje, ali polja po kojima upoređuješ dve tabele su indexirana, el tako?