Fórum Ubuntu CZ/SK
Ubuntu pro osobní počítače => Software => Příkazový řádek a programování pro GNU/Linux => Téma založeno: timmynovak 04 Května 2011, 21:33:09
-
Ahoj, řeším následující problém - potřeboval bych obsah textového souboru opakovaně uploadovat do MySQL, ale jen novinky. To umím vyřešit, jenže - potřebuji, aby se to do MySQL dostalo co nejrychleji. A tady je kámen úrazu - mohu samozřejmě neustále točit LOAD FROM FILE a ignorovat existující záznamy, ale to není ideální. Zbytečně to zatíží kde co všechno. Nešlo by to lépe? Tj. ve smyčce si jen kontrolovat, zda se soubor nezměnil a pokud ano, tak teprve provést načtení do MySQL. Jenže netuším, jak na to. Díky.
-
Tak napriklad si v databazi udelat dalsi sloupec pro datum posledni zmeny (mtime).
pokud lokalne ulozeny soubor bude mit vetsi mtime, nez mas v databazi, tak soubor v databazi updatni
-
to je moc databázové - pořád to bude žrát spojení. potřeboval bych to na úrovni os...
-
co si jenom porovnávat výstup treba z md5sum
-
to je dobrý nápad, jenže zase si to musím někam uložit:) bohužel nemám jak ovlivnit tvorbu toho souboru - napadá mne brutální řešení - soubor si zkopírovat do pracovního adresáře, pokud se bude originál lišit, tak udělat zase kopii do pracovního adresáře, tu načíst do db a pak pořád dokola... to by mohlo jít.
-
A proč si dělat celou kopii souboru, když stačí uložit jen ten výstup md5sum?
Navíc rozdíl zjistíš vždy nějakým porovnáním. A to něco s čím se bude porovnávat musíš mít někde uloženo nebo k dispozici.
to je dobrý nápad, jenže zase si to musím někam uložit:) bohužel nemám jak ovlivnit tvorbu toho souboru - napadá mne brutální řešení - soubor si zkopírovat do pracovního adresáře, pokud se bude originál lišit, tak udělat zase kopii do pracovního adresáře, tu načíst do db a pak pořád dokola... to by mohlo jít.
-
to musím někam uložit:)
držte si ten součet jen v nějaké proměnné, pokud to pojedete cronem tak máte proměnné prostředí, pokud ve smyčce tak v nějaké interní
do databáze to stejně budete zapisovat s ignore duplicit, přinejhoším se provede jeden zbytečný zápis po restartu.
-
tak jsem to nakonec vyřeil tím kopírováním, porávnám to přes cmp a případně znovu s ignore načtu. funguje to skvěle. děkuji všem.
-
Nebylo by jednodušší monitorovat čas modifikace souboru?
stat -c %y file
nebo lépe
stat -c %Y file
pro strojové zpracování