abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
eParkomat, startup z ČR, postoupil mezi finalisty evropského akcelerátoru ChallengeUp!
Robot na pivo mu otevřel dveře k opravdovému byznysu
Internet věcí: Propojený svět? Už se to blíží...
včera 17:02 | Pozvánky

Přijďte si popovídat o open source obecně a openSUSE konkrétně s dalšími uživateli a vývojáři. Oslava nového vydání openSUSE Leap se uskuteční 16. prosince od 17:00 v nových prostorách firmy SUSE v Praze. K dispozici bude nějaké občerstvení a DVD pro ty, kdo je sbírají nebo ještě mají mechaniku. Po párty v kanceláři se bude pokračovat v některé z hospod v okolí.

Miška | Komentářů: 7
včera 14:55 | Zajímavý software

Byla vydána verze Alpha 1.0 otevřeného operačního systému pro chytré hodinky AsteroidOS. Podporovány jsou hodinky LG G Watch, LG G Watch Urbane, Asus ZenWatch 2 a Sony Smartwatch 3. Ukázka ovládání hodinek na YouTube. Jaroslav Řezník přednášel o AsteroidOS na chytrých hodinkách (videozáznam) na letošní konferenci OpenAlt.

Ladislav Hagara | Komentářů: 0
včera 13:30 | Zajímavý software

Byly uvolněny zdrojové kódy známé rogue-like hry DoomRL. Počátky hry jsou v roce 2002. Je napsána ve FreePascalu a zdrojový kód je nyní k dispozici na GitHubu pod licencí GNU GPL 2.0. Autor pracuje na nové hře Jupiter Hell, která je moderním nástupcem DoomRL a na jejíž vývoj shání peníze prostřednictvím Kickstarteru.

Blaazen | Komentářů: 0
včera 13:15 | Pozvánky

Přijďte s námi oslavit vydání Fedory 25. Na programu budou přednášky o novinkách, diskuse, neřízený networking atd. Release Party se bude konat 16. prosince v prostorách společnosti Etnetera. Na party budou volně k dispozici také propagační materiály, nová DVD s Fedorou 25 a samozřejmě občerstvení. Přednášky budou probíhat v češtině. Pro více informací se můžete podívat na web MojeFedora.cz. Jen připomínám, že tentokrát jsme zavedli

… více »
frantisekz | Komentářů: 0
9.12. 16:38 | Komunita

Byly zveřejněny videozáznamy přednášek a workshopů z letošní konference OpenAlt konané 5. a 6. listopadu v Brně. K videozáznamům lze přistupovat ze stránky na SuperLectures nebo přes program konference, detaily o vybrané přednášce nebo workshopu a dále kliknutím na ikonku filmového pásu. Celkově bylo zpracováno 65 hodin z 89 přednášek a workshopů.

Ladislav Hagara | Komentářů: 0
9.12. 11:30 | Komunita

Bylo oznámeno, že bude proveden bezpečnostní audit zdrojových kódů open source softwaru pro implementaci virtuálních privátních sítí OpenVPN. Audit provede Matthew D. Green (blog), uznávaný kryptolog a profesor na Univerzitě Johnse Hopkinse. Auditována bude verze 2.4 (aktuálně RC 1, stabilní verze je 2.3.14). Audit bude financován společností Private Internet Access [reddit].

Ladislav Hagara | Komentářů: 4
9.12. 06:00 | Komunita

Na YouTube byl publikován Blender Institute Reel 2016, ani ne dvouminutový sestřih z filmů, které vznikly za posledních 10 let díky Blender Institutu. V institutu aktuálně pracují na novém filmu Agent 327. Dění kolem filmu lze sledovat na Blender Cloudu. Videoukázka Agenta 327 z června letošního roku na YouTube.

Ladislav Hagara | Komentářů: 0
9.12. 01:02 | Zajímavý článek

Minulý týden byly vydány verze 1.2.3 a 1.1.7 webového poštovního klienta Roundcube. V oznámení o vydání bylo zmíněno řešení bezpečnostního problému nalezeného společností RIPS a souvisejícího s voláním funkce mail() v PHP. Tento týden byly zveřejněny podrobnosti. Útočník mohl pomocí speciálně připraveného emailu spustit na serveru libovolný příkaz. Stejně, jak je popsáno v článku Exploit PHP’s mail() to get remote code execution z roku 2014.

Ladislav Hagara | Komentářů: 1
8.12. 16:00 | Nová verze

Byla vydána verze 0.98 svobodného nelineárního video editoru Pitivi. Z novinek lze zmínit například přizpůsobitelné klávesové zkratky. Videoukázka práce s nejnovější verzí Pitivi na YouTube.

Ladislav Hagara | Komentářů: 1
8.12. 15:00 | Zajímavý software

Stop motion je technika animace, při níž je reálný objekt mezi jednotlivými snímky ručně upravován a posouván o malé úseky, tak aby po spojení vyvolala animace dojem spojitosti. Jaký software lze pro stop motion použít na Linuxu? Článek na OMG! Ubuntu! představuje Heron Animation. Ten bohužel podporuje pouze webové kamery. Podpora digitálních zrcadlovek je začleněna například v programu qStopMotion.

Ladislav Hagara | Komentářů: 5
Kolik máte dat ve svém domovském adresáři na svém primárním osobním počítači?
 (32%)
 (23%)
 (29%)
 (7%)
 (5%)
 (3%)
Celkem 810 hlasů
 Komentářů: 50, poslední 29.11. 15:50
Rozcestník
Reklama

Dotaz: Jak nahradit v Mysql cca ve 100 000 000 řádcích znak

10.9.2012 18:54 Amatherus
Jak nahradit v Mysql cca ve 100 000 000 řádcích znak
Přečteno: 1849×
Poradil by někdo sql dotaz, který by v tabulce s názvem insert a sloupci s názvem url přepsal znak _ za znak - ? Děkuji

Odpovědi

10.9.2012 19:37 l0gik | skóre: 22
Rozbalit Rozbalit vše Re: Jak nahradit v Mysql cca ve 100 000 000 řádcích znak
To je to takovej problém se kouknout do dokumentace na funkce mysql?

UPDATE `insert` SET url = replace('_', '-', url)
10.9.2012 19:44 Amatherus
Rozbalit Rozbalit vše Re: Jak nahradit v Mysql cca ve 100 000 000 řádcích znak
Díky ale tohle nechci, za prvé to máš špatně, má to být takto ;) a za druhé ten příkaz umře, proto to s ním nejde :-(
UPDATE `insert` SET url = replace( url, '_', '-')
10.9.2012 20:06 Marek
Rozbalit Rozbalit vše Re: Jak nahradit v Mysql cca ve 100 000 000 řádcích znak
To znamena co, ze umre? Dotaz je v poradku, takze jestli je nekde nejaky problem, je treba ho vyresit a ne se snazit najit zpusob jak to obejit. 100M radku neni zas takovy des.
10.9.2012 20:52 Amatherus
Rozbalit Rozbalit vše Re: Jak nahradit v Mysql cca ve 100 000 000 řádcích znak
No myslím tím to, že pokud již zmíněný sql dotaz spustím, tak se provede pouze na cca 500 000 row, nasleduje ukončení bez error hlášky, zkoušel jsem projet i kontrolu celé db pomocí mysqlcheck a žádný problém nezjištěn.
10.9.2012 21:42 Radek Miček | skóre: 23 | blog: radekm_blog
Rozbalit Rozbalit vše Re: Jak nahradit v Mysql cca ve 100 000 000 řádcích znak
A rozdělit ho do několika dávek nepomůže?
10.9.2012 22:29 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
Rozbalit Rozbalit vše Re: Jak nahradit v Mysql cca ve 100 000 000 řádcích znak
Jak ho spouštíte?
To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
10.9.2012 23:46 Amatherus
Rozbalit Rozbalit vše Re: Jak nahradit v Mysql cca ve 100 000 000 řádcích znak
Pouštím to přímo z command line...
10.9.2012 23:25 Marek
Rozbalit Rozbalit vše Re: Jak nahradit v Mysql cca ve 100 000 000 řádcích znak
Nejedna se o timeout? Jak sql poustite? Jak jsou na tom systemove prostredky ve chvili, kdy to spadne? Neni na sloupci nejaky index, ktery by vse neumerne zpomaloval?
10.9.2012 23:48 Amatherus
Rozbalit Rozbalit vše Re: Jak nahradit v Mysql cca ve 100 000 000 řádcích znak
Nejedna se o timeout?
myslím že určitě ne
Jak jsou na tom systemove prostredky ve chvili, kdy to spadne?
nerozumím
Neni na sloupci nejaky index, ktery by vse neumerne zpomaloval?
taky nerozumím
11.9.2012 07:23 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
Rozbalit Rozbalit vše Re: Jak nahradit v Mysql cca ve 100 000 000 řádcích znak
Index a na upravovaném sloupci to může hodně zpomalit, ale nemělo by se to ukončit „jen tak“.
Rychlé řešení, které nedoporučuji je …ORDER BY `ID` LIMIT 0,200000; …ORDER BY `ID` LIMIT 200000,400000; atd…
To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
11.9.2012 21:51 předevčírem
Rozbalit Rozbalit vše Re: Jak nahradit v Mysql cca ve 100 000 000 řádcích znak
limit ma syntaxi offset, row_count, a muze se stat, ze se nektere radky nezpracuji, trebas pokud odeberes zaznamy mezi dvema updaty. lepsi je takto: where id > 0 and id <= 10000, where id > 10000 and id <= 20000, ... az do max(id)
12.9.2012 09:37 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
Rozbalit Rozbalit vše Re: Jak nahradit v Mysql cca ve 100 000 000 řádcích znak
Ano - chce to kontrolu,. S WHERE zas může být problém, že ID jsou velmi nepravidelně rozmístěna a bez nějaké hlubší analýzy se bude muset příkaz volat o hodně vícekrát.
Bral jsem to jako rychlé řešení a není problém si na konci ověřit kolik řádků obsahuje ještě daný znak.
To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
11.9.2012 08:43 l0gik | skóre: 22
Rozbalit Rozbalit vše Re: Jak nahradit v Mysql cca ve 100 000 000 řádcích znak
Myslím že ne na základě čeho? V každém případě, spusťte to na několikrát s limitem...
Josef Kufner avatar 7.10.2012 23:50 Josef Kufner | skóre: 66
Rozbalit Rozbalit vše Re: Jak nahradit v Mysql cca ve 100 000 000 řádcích znak
myslím že určitě ne
To jsi napsal pěknou blbost ;-)
Hello world ! Segmentation fault (core dumped)
pavlix avatar 11.9.2012 00:28 pavlix | skóre: 53 | blog: pavlix
Rozbalit Rozbalit vše Re: Jak nahradit v Mysql cca ve 100 000 000 řádcích znak
Toto mělo být součástí dotazu, aby to nebyl totálně lamerský dotaz, který samozřejmě dostane správnou odpověď, která ti z nějakého nefunguje :).
GentooFedoraSCRAM – Jsem open source vývojář, nikoli markeťák ⇒ názory zde uvedené jsou jen mé vlastní.
Heron avatar 25.9.2012 16:08 Heron | skóre: 50 | blog: root_at_heron | Olomouc
Rozbalit Rozbalit vše Re: Jak nahradit v Mysql cca ve 100 000 000 řádcích znak
To je dost zvláštní, ten dotaz by měl běžet v transakci a pokud "umře", tak se provede rollback celé transakce. Stav, kdy to umře v polovině a některé řádky jsou změněné a jiné ne je hodně špatný.
11.9.2012 08:39 jekub
Rozbalit Rozbalit vše Re: Jak nahradit v Mysql cca ve 100 000 000 řádcích znak
Urcite bych do update pridal jeste podminku, zda url vubec nahrazovany znak obsahuje. Mozna to ale MySQL dela sama (neznam) a proto opravi jen tech 500k radku.

ps: insert jako jmeno tabulky je takove ... svojske :-)
11.9.2012 09:20 l0gik | skóre: 22
Rozbalit Rozbalit vše Re: Jak nahradit v Mysql cca ve 100 000 000 řádcích znak
Blbina. Na to zjistit jestli tam znak je se to stejně musí přečíst a update řádek kterej nic nedělá je levnej (v mysl snad nic neprovede).
11.9.2012 09:59 jekub
Rozbalit Rozbalit vše Re: Jak nahradit v Mysql cca ve 100 000 000 řádcích znak
Takze napr.
update `insert` set url=url
nic nedela? A bude to levne i v pripade existence triggeru a constraintu na tabulce, resp. sloupci?
11.9.2012 13:10 DK
Rozbalit Rozbalit vše Re: Jak nahradit v Mysql cca ve 100 000 000 řádcích znak
to je jako reagovat na namitku, ze tygr v zoo ti nic neudela, vetou "takze kdyz potkas tygra v africe, tak ti nic neudela? a ani s organy?"
11.9.2012 16:12 jekub
Rozbalit Rozbalit vše Re: Jak nahradit v Mysql cca ve 100 000 000 řádcích znak
Takze update na celou tabulku je v MySQL stejny jako update na vybrane zaznamy (tj. pouze ty, ktere obsahuji znak _). Zadne zamky, zadna konkurennce? Zadne zbytecne fyzicke zapisy na disk?
11.9.2012 16:22 jekub
Rozbalit Rozbalit vše Re: Jak nahradit v Mysql cca ve 100 000 000 řádcích znak
a kdyz uz sme u tech analogii, tak v zoo tygr nejspis navstevnikum (~ uzivatelum) nic neudela, osetrovatel (~ spravce) by mel ale byt obezretny a k tygrovi se chovat jako by byl "na volno" (ten tygr).
Heron avatar 25.9.2012 16:11 Heron | skóre: 50 | blog: root_at_heron | Olomouc
Rozbalit Rozbalit vše Re: Jak nahradit v Mysql cca ve 100 000 000 řádcích znak
Nemusí dělat hledání toho znaku, to by bylo hodně drahé. MySQL client zobrazuje kolik řádků se změnilo (a nikoliv kolik řádků bylo součástí datasetu).

Jo, pojmenovat tabulku klíčovým slovek je hodně ... přidělávající problémy.
11.9.2012 22:07 předevčírem
Rozbalit Rozbalit vše Re: Jak nahradit v Mysql cca ve 100 000 000 řádcích znak
kolik je ti, prosim te, let, ze si myslis, ze tady budeme cist tvoje myslenky? ptal ses na sql dotaz, dostal jsi sql dotaz. jestli jsi ve skutecnosti chtel vedet, proc tvuj sql dotaz nedobehne, tak jsi to mel napsat do dotazu, a ne ze se zeptas na sql dotaz, dostanes sql dotaz, a ty na to napises, ze tohle nechces, ale vlastne chces neco uplne jineho, co s puvodnim dotazem vubec nesouvisi.
11.9.2012 09:38 Ivo
Rozbalit Rozbalit vše Re: Jak nahradit v Mysql cca ve 100 000 000 řádcích znak
UPDATE `insert` SET url = replace('_', '-', url) where url like '%_%';

a spustil by som to niekolko krat za sebou kym to nevrati 0 riadkov updated
11.9.2012 16:54 kuka
Rozbalit Rozbalit vše Re: Jak nahradit v Mysql cca ve 100 000 000 řádcích znak
Hm tak toto je v zasade pouze prepsane not null, podtrzitko v like matchuje libovolny znak.
11.9.2012 18:38 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
Rozbalit Rozbalit vše Re: Jak nahradit v Mysql cca ve 100 000 000 řádcích znak
Doufám, že máte zálohu…
To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
11.9.2012 20:39 jekub
Rozbalit Rozbalit vše Re: Jak nahradit v Mysql cca ve 100 000 000 řádcích znak
proc?
11.9.2012 22:01 l4m4
Rozbalit Rozbalit vše Re: Jak nahradit v Mysql cca ve 100 000 000 řádcích znak
No schválně, co ten příkaz udělá?
pavlix avatar 11.9.2012 22:58 pavlix | skóre: 53 | blog: pavlix
Rozbalit Rozbalit vše Re: Jak nahradit v Mysql cca ve 100 000 000 řádcích znak
+1
GentooFedoraSCRAM – Jsem open source vývojář, nikoli markeťák ⇒ názory zde uvedené jsou jen mé vlastní.
12.9.2012 09:23 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
Rozbalit Rozbalit vše Re: Jak nahradit v Mysql cca ve 100 000 000 řádcích znak
Je tak těžké si to zkusit?
Uvedený příkaz má v sobě velkou chybu, díky které ničí nalezené url a chybu, díky které ničí všechna url.
A napovím těmito ukázkami:
SELECT REPLACE('_','-','Very important string') AS suprise;
+---------+
| suprise |
+---------+
| _       |
+---------+
SELECT COUNT(*) FROM `kuk2`;
+----------+
| COUNT(*) |
+----------+
|        5 |
+----------+
SELECT * FROM `kuk2` WHERE `t` LIKE '%_%';
+------+
| t    |
+------+
| aaa  |
| a%a  |
| a-a  |
| a_a  |
| %_%  |
+------+
To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
Heron avatar 25.9.2012 16:13 Heron | skóre: 50 | blog: root_at_heron | Olomouc
Rozbalit Rozbalit vše Re: Jak nahradit v Mysql cca ve 100 000 000 řádcích znak
a spustil by som to niekolko krat za sebou kym to nevrati 0 riadkov updated

Proboha! SQL je deterministické, pokud je ten příkaz napsaný správně, tak se transkakce dokončí celá už napoprvé a pokud není, tak se změny vrátí zpět. Neexistuje žádná situace, kdy se to zkouší, dokud to omylem nedoběhne.

11.9.2012 23:09 Daniel Čižinský | skóre: 28
Rozbalit Rozbalit vše Re: Jak nahradit v Mysql cca ve 100 000 000 řádcích znak
Doufam, ze to nebudete brat jako OT, ale resil jsem pred nedavnem podobny problem (jen to bylo asi 130 mil. radku) a na testovacim stroji jednoduchy update dobehl asi do 30 % po dvou dnech (kdy jsem se k tomu vratil a vypnul to). Uprava dumpu pomoci kolony v shellu (hlavnim akterem sed) trvala cca 6 sec.
12.9.2012 14:27 Lukáš Džunko | skóre: 39 | blog: Jooky | Bratislava
Rozbalit Rozbalit vše Re: Jak nahradit v Mysql cca ve 100 000 000 řádcích znak
ja som riesil upravu cca 1,5 miliona riadkov a tiez som narazil na problem s rychlostou. Ako by sa dalo ocakavat, tak stacilo zacat tranzakciu pred takym updatom a v momente dokoncenia ju potvrdit. Cele updatovanie trvalo nepomerne kratsie. Ono sa to az dalo ocakavat, ale nenapadlo ma to hned.
Josef Kufner avatar 7.10.2012 23:54 Josef Kufner | skóre: 66
Rozbalit Rozbalit vše Re: Jak nahradit v Mysql cca ve 100 000 000 řádcích znak
InnoDb automaticky zahajuje a ukončuje transakci kolem každého dotazu. Tím, že to obalíš do jedné transakce, tahle režie odpadne. Případně ještě může pomoct odstranění/zakázání indexu na modifikovaném sloupci.
Hello world ! Segmentation fault (core dumped)
8.10.2012 13:25 George O.
Rozbalit Rozbalit vše Re: Jak nahradit v Mysql cca ve 100 000 000 řádcích znak
Docela jasny timeout DB connection IMHO, standartne byva nekde kolem jedne minuty, pokud nenastavis jinak a protoze jsi reagoval stylem "myslim, ze se nejedna o timetout", tim padem je jasne, ze jsi jej asi nenastavil na nejakou mnohem vyssi, nez defaultni hodnotu, kdyz to nevis jiste :-)

Update s offsetem to vsechno resi. Nechapu tu omacku tady kolem toho. Mozna je nejake idealnejsi reseni, nez offset, ale proc resit detaily, kdyz mame naprosto jednoduche, rychle a hlavne bezpecne reseni :-)

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267   www.czech-server.cz
© 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.