|
08. 01. 2007. | #1 |
Ivan Dilber
Sir Write-a-Lot
|
nalazenje duplikata
klijent je kupio 2 velike baze sa gomilama clanaka (jedna je 520MB, a druga oko 1GB). Zapravo radi se o vrlo jednostavnim mysql tabelama sa par polja, sami clanci se nalaze u polju tipa text, a ostala polja su neke statistike o broju reci i slova.
E sad bi trebalo da ja te dve tabele pretvorim u jednu, ali da pritom eliminisem duplikate. To ne bi bio neki veliki problem da su ti duplikati identicni byte po byte, ali postoji sansa da postoje neke sitne razlike u formatiranju , extra spejsovi i slicno. Jel postoji neki efikasan nacin da merdzujem obe baze, osim brute-force proverave svakog sa svakim ? (posto ce to da traje danima)
__________________
Leadership is the art of getting people to want to do what you know must be done. |
08. 01. 2007. | #2 |
VD IT Direktora
Invented the damn thing
Datum učlanjenja: 08.06.2005
Lokacija: Beograd
Poruke: 2.118
Hvala: 503
1.307 "Hvala" u 282 poruka
|
Možeš ako imaš volje da praviš neku MySQL UDF funkciju koja će da vrši "soft" poređenje koje ti treba.
Međutim, ja mislim da ne bi baš toliko trajalo ni klasično aplikativno rešenje sa dve petlje... Sumnjam da bi trajalo više od sat-dva. Možda ne baš u PHP-u... |
08. 01. 2007. | #3 |
Direktor Kombinata
Invented the damn thing
Datum učlanjenja: 07.06.2005
Poruke: 2.669
Hvala: 44
119 "Hvala" u 64 poruka
|
Ako su razlike tako "zavučene" onda mi padaju na pamet jedino filtriranje po sličnosti (ukoliko su stringovi slični > 95% obiđi) ili da stripuješ svo formatiranje i whitespace i odradis poređenje (direktno ili po sličnosti).
Možda odradi posao, ali je daleko od bilo kakve elegancije
__________________
activeCollab - Project Management and Collaboration Tool iz domaće kuhinje | area51.rs - Blog |
08. 01. 2007. | #4 |
Ivan Dilber
Sir Write-a-Lot
|
ovo zirino je odlicna ideja, mogu da izbacim sve sto nisu slova i napravim md5 toga. I onda samo stavim da je to polje indexirano UNIQUE kljucem, i pustim insert ignore into... very kewl
__________________
Leadership is the art of getting people to want to do what you know must be done. |
08. 01. 2007. | #5 |
Vladan Zirojević
Grand Master
|
Mozda: napravis novo polje u obje tabele koje sadrzi md5(clean_format(title+article)), gdje vidis sam sta ti je clean format. Onda stavis unique index na to md5 polje i uradis merge tabela.
Za svaki slucaj upisujes negdje one zapise koji nisu prosli, pa kasnije mozes da provjeris... |
Alati teme | |
Način prikaza | |
|
|
Slične teme | ||||
Tema | Početna poruka teme | Forum | Odgovori | Poslednja poruka |
provera duplikata fajlova | ivanhoe | PHP | 27 | 11. 04. 2010. 14:30 |
MySQL uklanjanje duplikata | Nemanja Avramović | SQL baze podataka - Sponzor: Baze-Podataka.net | 5 | 08. 02. 2008. 12:24 |