abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 00:33 | Nová verze

    Webový prohlížeč Dillo (Wikipedie) byl vydán ve verzi 3.1.0. Po devíti letech od vydání předchozí verze 3.0.5. Doména dillo.org již nepatří vývojářům Dilla.

    Ladislav Hagara | Komentářů: 0
    včera 15:00 | Komunita

    O víkendu probíhá v Bostonu, a také virtuálně, konference LibrePlanet 2024 organizovaná nadací Free Software Foundation (FSF).

    Ladislav Hagara | Komentářů: 0
    včera 13:22 | Nová verze

    Nová vývojová verze Wine 9.8 řeší mimo jiné chybu #3689 při instalaci Microsoft Office 97 nahlášenou v roce 2005.

    Ladislav Hagara | Komentářů: 0
    3.5. 13:11 | Nová verze

    Coppwr, tj. GUI nástroj pro nízkoúrovňové ovládání PipeWire, byl vydán v nové verzi 1.6.0. Zdrojové kódy jsou k dispozici na GitHubu. Instalovat lze také z Flathubu.

    Ladislav Hagara | Komentářů: 0
    2.5. 22:33 | Nová verze

    Byla vydána dubnová aktualizace aneb nová verze 1.89 editoru zdrojových kódů Visual Studio Code (Wikipedie). Přehled novinek i s náhledy a animovanými gify v poznámkách k vydání. Vypíchnout lze, že v terminálu lze nově povolit vkládání kopírovaného textu stisknutím středního tlačítka myši. Ve verzi 1.89 vyjde také VSCodium, tj. komunitní sestavení Visual Studia Code bez telemetrie a licenčních podmínek Microsoftu.

    Ladislav Hagara | Komentářů: 20
    2.5. 21:22 | Nová verze

    Proton, tj. fork Wine integrovaný v Steam Play a umožňující v Linuxu přímo ze Steamu hrát hry určené pouze pro Windows, byl vydán ve verzi 9.0-1 (𝕏). Přehled novinek se seznamem nově podporovaných her na GitHubu. Aktuální přehled her pro Windows běžících díky Protonu také na Linuxu na stránkách ProtonDB.

    Ladislav Hagara | Komentářů: 2
    2.5. 19:33 | Nová verze

    Byla vydána verze 1.78.0 programovacího jazyka Rust (Wikipedie). Podrobnosti v poznámkách k vydání na GitHubu. Vyzkoušet Rust lze například na stránce Rust by Example.

    Ladislav Hagara | Komentářů: 0
    2.5. 11:22 | Bezpečnostní upozornění

    Služba Dropbox Sign (původně HelloSign) pro elektronické podepisování smluv byla hacknuta.

    Ladislav Hagara | Komentářů: 3
    2.5. 11:00 | Nová verze

    Byla vydána nová major verze 8.0 textového editoru GNU nano (Wikipedie). Podrobný přehled novinek a oprav v oznámení v diskusním listu info-nano nebo v souboru ChangeLog na Savannah. Volbou --modernbindings (-/) lze povolit "moderní" klávesové zkratky: ^C kopírování, ^V vložení, ^Z vrácení zpět, … Tato volba je aktivována také pokud binárka s nano nebo link na ni začíná písmenem "e".

    Ladislav Hagara | Komentářů: 4
    1.5. 23:22 | IT novinky

    Před 60 lety, 1. května 1964, byl představen programovací jazyk BASIC (Beginners' All-purpose Symbolic Instruction Code).

    Ladislav Hagara | Komentářů: 23
    Podle hypotézy Mrtvý Internet mj. tvoří většinu online interakcí boti.
     (57%)
     (10%)
     (18%)
     (14%)
    Celkem 77 hlasů
     Komentářů: 8, poslední včera 08:25
    Rozcestník

    Administrace komentářů

    Jste na stránce určené pro řešení chyb a problémů týkajících se diskusí a komentářů. Můžete zde našim administrátorům reportovat špatně zařazenou či duplicitní diskusi, vulgární či osočující příspěvek a podobně. Děkujeme vám za vaši pomoc, více očí více vidí, společně můžeme udržet vysokou kvalitu AbcLinuxu.cz.

    Příspěvek
    5.3.2013 10:41 Lyco
    Rozbalit Rozbalit vše Re: MyISAM vs. InnoDB
    TL;DR: vykašli se na MyISAM a používej InnoDB.

    Podrobněji: Nenapsal jsi, co přesně na tom chceš provozovat, a jak vypadá zátěž. Píšeš že poměr selectů a insertů je 30:70, to je nějaké divné - skutečně máš dvakrát víc insertů než selectů? Dále nevíme, jestli ti v databázi běhají nějaké dlouhodobější dotazy - generování nějakých reportů, dávkové importy a podobně. Taky by se hodilo vědět něco o struktuře databáze - jsou tabulky normalizované a děláš tím pádem hodně JOINů, nebo je všechno denormalizované? Jsou nějaká data používanější než jiná? Kolik jich je? Jak je databáze velká? (Vejde se do paměti? Vejdou se tam aspoň "horká" data?) Opakují se dotazy, nebo je každý select unikát? Provozuješ na serveru kromě databáze ještě něco, jako třeba webserver? Pokud ano, kolik je statických dat? Kolik máš najednou běžících dotazů (pokud ti tam opravdu běží v jednu chvíli 300 dotazů, tak máš vážný problém).

    Než se pustím do nějakého většího rozboru: vykašli se na fakeraid. Pokud nemáš HW řadič, tak použij mdraid. Fakeraid spojuje nevýhody obojího a nepřináší žádný prospěch. RAID 10 je dobrá volba, pokud potřebuješ výkon.

    Budu předpokládat následující věci (pokud něco z toho neplatí, pak nemusí platit moje závěry): Databáze je na samostatném serveru. Databázi používá webserver, který si dělá connection pooling. Většina otevřených spojení nic nedělá, v jednu chvíli se vykonává 5 - 20 dotazů. Na serveru se provádí dlouho trvající dotazy, ale jen v noci. Není potřeba je optimalizovat víc než aby kvůli nim server nepadal. V tuhle chvíli server nepadá, takže je můžeme ignorovat. Data se nevejdou do RAM, ale vejdou se tam často používaná data, takže na disk se při běžném provozu sahá jen občas, a jen v jednom nebo dvou vláknech. Databáze je z větší části normalizovaná, řekněme druhá normální forma. Běžné dotazy sahají na jednu až tři tabulky. Na všech sloupcích podle kterých se joinuje jsou indexy. Poměr selectů:zápisů je 30:70, selecty se obvykle příliš neopakují. Z tabulek, do kterých se zapisuje, se taky čte. (Tzn. nemáš "write only" tabulku.) Předpokládám, že umíš optimalizovat dotazy. Tzn. neřeším kam dát jaké indexy, jak a kdy se vyhnout sekvenčním čtením tabulek a podobně.

    Protože se ti dotazy moc neopakují, je zbytečné používat query cache, jenom přidává další (globální) zámky. Zkus ji vypnout.

    MyISAM je rychlý jen při splnění následující podmínky: do databáze se nezapisuje. Jakmile se začnou střídat čtení a zápisy (na vytíženém serveru stačí klidně 5 % zápisů), výkon prudce klesá, protože se zamykají celé tabulky. Vzhledem k tomu, že ty zapisuješ často, je MyISAM nesmysl. Používej InnoDB, začni pracovat s transakcemi a pokud můžeš, nepoužívej SERIALIZABLE (opět kvůli zamykání). Přechod na InnoDB je nejzásadnější optimalizace.

    InnoDB používá vlastní cache. Nastav si innodb_buffer_pool_size na cca 40 - 50 % dostupné RAM. Taky nezapomeň na key_buffer, cca 10 - 20 % RAM. Zbytek nech volný pro souborovou cache operačního systému. Experimentuj. Tohle je druhá nejdůležitější optimalizace.

    Pokud potřebuješ výkon a jsi ochotný riskovat malou ztrátu dat, nastav innodb_flush_log_at_trx_commit = 2. Nepoužívej = 0. Tohle je třetí nejdůležitější optimalizace.

    Používej EXPLAIN. Používej slow log. Používej pt-query-digest (v Debianu je ještě jako mk-query-digest). Používej indexy na více sloupcích. RTFM.

    InnoDB tabulky jsou vlastně indexy, které obsahují kromě primárního klíče i zbytek řádku (tomuhle uspořádání se říká cluster index). Všechny ostatní indexy obsahují indexované sloupce a hodnotu primárního klíče. Pokud v tabulce primární klíč není, InnoDB vytvoří skrytý sloupec a bere ten, ale tenhle sloupec je poměrně velký (6 byte). Aby byly indexy co nejrychlejší, měly by být taky co nejmenší (pak se jich vejde víc do paměti a rychleji se čtou z disku). Proto potřebuješ na každé tabulce primární klíč, a potřebuješ ho co nejkratší (ideálně INTEGER). Pozor, změna primárního klíče znamená, že se musí tabulka postavit úplně znova.

    InnoDB je optimalizované na režim, kdy jsou data všech tabulek v jednom souboru. Bohužel, InnoDB neumí svoje datové soubory zmenšovat (se zvětšováním nemá problém). Nech si dost místa na disku. Dávej si pozor, abys do databáze nenasypal spoustu data která pak budeš mazat - místo by se neuvolnilo.

    Pokud potřebuješ fulltext, vykašli se na MySQL. Použij třeba elasticsearch nebo sphinx. MySQL má fulltext který je pomalý, nic neumí a nedá se konfigurovat.

    Vyhni se počítání řádků (count(*)). Protože je InnoDB transakční, musí přečíst každý řádek jen aby vědělo, jestli ho transakce vidí. Pokud ti stačí přibližná data, vezmi je z information_schema. Pokud potřebuješ přesná, omez důkladně počet řádků které se musí přečíst (tzn. musíš tam mít index).

    InnoDB nemá stabilní statistiky jako MyISAM, místo toho dělá random dives (http://dev.mysql.com/doc/refman/5.1/en/innodb-restrictions.html#idp100219904). Výsledky EXPLAINu se můžou měnit samy od sebe. Pouštěj EXPLAIN víckrát a dělej mezi tím ANALYZE TABLE.

    V tomto formuláři můžete formulovat svou stížnost ohledně příspěvku. Nejprve vyberte typ akce, kterou navrhujete provést s diskusí či příspěvkem. Potom do textového pole napište důvody, proč by měli admini provést vaši žádost, problém nemusí být patrný na první pohled. Odkaz na příspěvek bude přidán automaticky.

    Vaše jméno
    Váš email
    Typ požadavku
    Slovní popis
    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.