Dnes: 21. ledna 2018    | Registrace | Hledáme | Redakce | Info | Testy | Školení | Ocenění | Nápověda | Čtenář: nepřihlášen

Rychlé odkazy
  • Hlavní stránka
  • Seznam rubrik
  • Ankety
  • Editoriály
  • TOP 15
  • KONFERENCE 2008
  • KONFERENCE 2007
  • KONFERENCE 2006
  • KONFERENCE 2005
  • KONFERENCE 2004
  • Sborník
  • Testy
  • Virtuální školení
  • Personalizace


  • Hledáte práci?
    Hledáme redaktora - pojďte s námi tvořit Databázový svět!

    Vyhledávání

    Hledej
    na Databázovém světě!



    Rozšířené vyhledávání

    Rubriky
    Aktuality
    Bezpečnost
    Business
    Česká scéna
    Datové sklady
    Dokumentace
    Dotazovací jazyky
    Hardware
    Historie
    Komentáře
    Literatura
    Metodologie
    Nondb
    Open Source
    Poradna
    Produkty
    Případové studie
    Redakce
    Rozhovory
    Standardy
    Technologie
    Tipy - triky
    Tiskové zprávy
    Vývoj
    Vývojové nástroje
    Zajímavosti

    Co je to?
    Databázový stroj
    (Database Engine)

    Pod pojmem Database Engine (tedy pod databázovým strojem) se obvykle rozumí jádro databázového serveru a základní obslužné programy tohoto jádra (například zajišťující vzdálené připojení uživatelů). Lze tedy říci, že databázový stroj je podmnožinou databázového serveru, přičemž pod pojmem databázový server je nutné vidět vybavení (typicky softwarové) pracující nad danou databází a zajišťující veškeré činnosti (včetně všech potřebných komunikací), které nad danou databází mají být zajišťovány.

    Akce
    Dynamická Datová Centra
    - na semináři se seznámíte s komplexním řešením a koncepcí Dynamických Datových Center od Fujitsu Siemens Computers se speciálním důrazem na řešení FlexFrame.

    Textová inzerce
    IBPhoenix - Vše o InterBase a Firebirdu.

    Smějete se rádi? - Pak je pro vás Vtipník to pravé!

    Prodejce reklamy - Hledáme schopného prodejce reklamního prostoru, možnost i externí spolupráce.

    Přihlášený čtenář
    Nepřihlášený čtenář

    O portálu
    Databázový svět
    ISSN: 1213-5933

    Web je optimalizován pro rozlišení 1024x768, nicméně kromě větších rozlišení podporujeme i 800x600. Podrobnosti najdete zde.

    Chcete-li mít kdykoliv možnost zkontrolovat obsah našeho portálu, můžete využít podporu rss. Podrobnosti najdete zde.
    Vyvíjíme databázový a informační systém XXII.


    [Metodologie] - {Začátečníci} Ve dvacátém druhém pokračování našeho rozsáhlého seriálu o základních principech a o vývoji databázových a informačních systémů se podíváme na problematiku optimalizace výkonu databázových aplikací. řekneme si několik základních pravidel, které nám mohou pomoci ušetřit uživatelův čas.



    Jednou z hlavních oblastí, kde lze výrazně ušetřit výkon a rychlost databáze jsou zcela logicky samotné SQL dotazy, kterými se na databázi obracíme. Existují různé pokročilé techniky na zdokonalování příkazů SQL, ale zde se podíváme na základní problémy týkající se především struktury navržených tabulek, které nepříznivě ovlivňují celkový výkon.

    Datové typy
    První bod je jedním z věčně řešených kompromisů velikosti použitého datového typu. Čím menší použijeme datový typ, tím je potřeba méně místa v paměti i na disku. Díky menší paměti proběhne rychleji vyhledání i použití typu. Na druhou stranu nesmí být dosah databáze svázán příliš omezenými typy, které třeba již za několik měsíců znamenají omezení funkčnosti databáze. Navíc ne vždy platí, že omezení rozsahu nemůže znamenat zpomalení – ale více méně pouze v okrajových situacích.

    Pole proměnné délky
    Zde se skrývá potenciální významné zvýšení výkonu, resp. jeho nesnížení. Pokud se lze vyhnout použití polí proměnné délky, zajistíte tím důležitý krok k udržení vysokého výkonu databáze.

    Použití indexů
    V našem seriálu již byly zmíněny indexy urychlující zpracování výběrových dotazů. Druhou nepříznivou stranou mince je však zpomalení operací insert a update. Takže s heslem "všeho moc škodí" nesmíte svou databázi uindexovat k záhubě.

    Implicitní hodnoty polí
    Vhodným využíváním polí s výchozími hodnotami lze podstatně zkrátit analýzu při zpracování přidávacích dotazů.

    Typ tabulky
    V MySQL lze využít čtyř typů tabulek:

    • static (statické) – výchozí typ tabulky. Jedná se o velmi rychlý typ tabulky, který je však omezen použitím pouze polí s pevnou délkou. Pokud bychom v tabulce využili byť jen jedno pole s délkou proměnnou, vytvoří se tabulka dynamická.
    • dynamic (dynamické) – tento typ tabulky je pomalejší, neboť potřebuje pro svou činnost více shromážděných informací. Každý řádek tabulky musí mít zapsáno, jak velká jsou jeho pole.
    • heap (halda) – jedná se o nejrychlejší typ tabulek. Rychlost je však vykoupena tím, že existují výhradně v operační paměti počítače.Použitím jsou vhodné například při spojování tabulek.
    • compressed (komprimované) – jsou úspornější vzhledem k diskové kapacitě. Tyto tabulky lze využívat pouze pro čtení, jsou dosti rychlé, ale jsou k dispozici pouze platícím zákazníkům produktu MySQL.

    Mezi obecné rady pro zrychlení dotazů v MySQL lze řadit sestavování dotazů využívajících především zavedených indexů, které jsou právě k tomuto určeny, dále vyhnutí se zápisu s nadbytečnou interpunkcí, čímž se myslí například použití závorek, které mají smysl pouze pro člověka – lepší orientace, ale stroj pouze zpomalí, neboť i tyto závorky jsou důvodem pro vyvolání zbytečné analýzy. Často diskutovanou otázkou je také zabezpečení databáze. Opět je nutno vyřešit kompromis mezi bezpečností a rychlostí. Vhodným místem k vylepšení je také klauzule where. Podmínky by měly opět šikovně využívat indexovaných polí. Máme-li též na výběr mezi podmínkou pracující s číselnými hodnotami a podmínkou pracující s textem, určitě to rychlostí vyhrají číselné typy.

    A co údržba databáze?
    Při prvním zaplnění tabulky daty, bude tabulka v pořádku, ale s každým odstraněným záznamem z tabulky, popř. odstraněním hodnoty ze sloupce proměnné délky, se v tabulce střádá zbytečně obsazený prostor. Tím je na disku obsazeno více místa a činnost celého systému je zpomalena. Je tedy nutné nejlépe v pravidelných intervalech přistupovat k optimalizaci uspořádání dat. Můžeme využít příkazu optimize, kde příkazem:

    optimize tabulka;
    

    uvolníme případné nevyužité místo, které se nastřádalo na disku po odstraněných záznamech. Během vykonávání příkazu bude tabulka dostupná pouze pro čtení.

    Druhou možností je využití opravného nástroje myisamchk, který je uložen v podadresáři bin domovského adresáře databázového systému mysql. Tento pomocný program umožňuje optimalizaci tabulek a klíčů. Lze ho tedy použitím přirovnávat k předchozímu optimize. Tvar použití je následující:

    myisamchk přepínače tabulka;
    

    Program myisamchk lze však používat i k opravám poškozených tabulek. K vlastnímu použití programu pak existuje řada přepínačů, kterými ovlivňujete jeho chování. Jmenujme alespoň přepínač -q (-quick), který spustí opravný nástroj v rychlejším režimu, -r (-recover) opraví poškozené soubory a přeuspořádá data, aby nebyla obsahem data prázdná nevyužitá místa, -o (-safe-recovery) spustí pomalejší verzi parametru -r, která může opravit i chyby, jenž nejdou pomocí parametru -r opravit. Mnohé další parametry lze pak vyčíst z dokumentace.

    Ladění výkonu databáze pro konkrétní systém a sestavu počítače
    Databázový systém MySQL byl vyvinut pro počítače s procesory Intel a operačním systémem Linux, proto je jenom logické, že na tomto systému dosahuje nejvyšší výkonnosti. Na platformě Windows je výkon poněkud horší hlavně díky systému přidělování paměti na úrovni operačního systému. Zkusme se nyní probrat aktuální konfigurací MySQL na vašem systému a podívat se na nastavení některých proměnných. K nastavení se můžete dostat přes příkaz:

    mysqladmin -p variables
    

    nebo pomocí spuštěného programu WinMySQLAdmin a záložky variables. Z pohledu aktualizace systému by mohly být zajímavé následující systémové proměnné:

    • back_log – nastavená proměnná nám určuje počet souběžných klientských připojení, které může server MySQL obsluhovat, aby byl ještě schopen přijímat další požadavky, tj. vytvářet nová vlákna.
    • flush_time – tato proměnná obsahuje nastavený časový limit v sekundách. Limit určuje, v jakých intervalech musí MySQL vyprázdnit vyrovnávací paměť a uložit všechny provedené změny na disk. Samozřejmě platí - čím je server zatíženější, tím se snižuje jeho výkon a nastavená hodnota intervalu ukládání obsahu vyrovnávací paměti na pevný disk by měla být vyšší.
    • table_cache – proměnná určuje nejvyšší možný počet otevřených tabulek ve všech aktivních vláknech. Hodnota lze samozřejmě změnit na vyšší, ale v některých systémech bychom ještě mohli narazit na omezení operačního systému pro nejvyšší počet souběžně otevřených souborů, tzn. muselo by dojít k úpravě i zde.
    • i>wait_timeout – opět nastavený časový limit, který by v tomto případě určoval, za jak dlouho bude připojení považováno za neaktivní. Nastavením nižší hodnoty bychom zde mohli dosáhnout vyššího výkonu celého serveru.
    • *_buffers_* – téměř jako u všech činností počítače, zvětšení vyrovnávací paměti zvýší propustnost, v tomto případě celé databáze. Nutné je však dolaďovat celý systém na optimální hodnoty v souladu s celkovým výkonem počítače a hlavně dostupnou velikostí jeho operační paměti.

    Další možnosti ladění se skrývají ve způsobu spouštění samotného serverového programu mysqld. Například by bylo možné mluvit o potřebném obsahu protokolování činnosti systému. Vypnutím byste určitě činnost serveru MySQL urychlili, ale při případném selhání už by nebyla možnost obnovy. Například protokolování systémových zpráv je možné nastavovat pomocí přepínače -l.

    Související články:
    Vyvíjíme databázový a informační systém XXV. (28.12.2004)
    Vyvíjíme databázový a informační systém XXIV. (27.12.2004)
    Vyvíjíme databázový a informační systém XXIII. (16.12.2004)
    Vyvíjíme databázový a informační systém XXI. (16.11.2004)
    Vyvíjíme databázový a informační systém XX. (03.11.2004)
    Vyvíjíme databázový a informační systém XIX. (25.10.2004)
    Vyvíjíme databázový a informační systém XVIII. (13.10.2004)
    Vyvíjíme databázový a informační systém XVII. (04.10.2004)
    Vyvíjíme databázový a informační systém XVI. (21.09.2004)
    Vyvíjíme databázový a informační systém XV. (13.09.2004)
    Vyvíjíme databázový a informační systém XIV. (25.08.2004)
    Vyvíjíme databázový a informační systém XIII. (18.08.2004)
    Vyvíjíme databázový a informační systém XII. (02.08.2004)
    Vyvíjíme databázový a informační systém XI. (14.07.2004)
    Vyvíjíme databázový a informační systém X. (07.07.2004)
    Vyvíjíme databázový a informační systém IX. (01.07.2004)
    Vyvíjíme databázový a informační systém VIII. (23.06.2004)
    Vyvíjíme databázový a informační systém VII. (16.06.2004)
    Vyvíjíme databázový a informační systém VI. (09.06.2004)
    Vyvíjíme databázový a informační systém V. (02.06.2004)
    Vyvíjíme databázový a informační systém IV. (26.05.2004)
    Vyvíjíme databázový a informační systém III. (19.05.2004)
    Vyvíjíme databázový a informační systém II. (12.05.2004)
    Vyvíjíme databázový a informační systém I. (05.05.2004)

    ( Celý článek! | Autor: Martin Pokorný | Počet komentářů: 0 | Přidat komentář | Informační e-mailVytisknout článek )

    Vyhledávání
     

    Anketa
    Kolik ročně utratíte za dovolené?

    Nic 
     (1557 hl.)
    Do 1 000,- Kč 
     (1074 hl.)
    Do 10 000,- Kč 
     (1003 hl.)
    Do 25 000,- Kč 
     (1385 hl.)
    Do 50 000,- Kč 
     (1019 hl.)
    Do 75 000,- Kč 
     (1183 hl.)
    Více než 75 000,- Kč 
     (1022 hl.)

    Celkem hlasovalo: 8243


    Poslední komentáře
    frontierd@126.com
    frontierd@126.com
    frontierd@126.com
    c
    http://www.coachoutl

    Newsletter
    Přihlaste si nezávazně - i bez registrace - odběr informačního newsletteru. Podrobné informace najdete zde.

    Emailová adresa:


    Kalendář
    <<  Leden  >>
    PoÚtStČtSoNe
    1234567
    891011121314
    15161718192021
    22232425262728
    293031    

    Redakci připojuje


    Nejčtenější

    Databáze je prázdná!


    Nejvíce komentářů

    Databáze je prázdná!


    Reklama






    Nenechte si ujít články na dalších webech




    Na této stránce použité názvy programových produktů, firem apod. mohou být ochrannými známkami
    nebo registrovanými ochrannými známkami příslušných vlastníků.

    Databázový svět | dfKlub - digitální fotografie | Vtipník - vtipy přímo k Vám | Reminder - přestaňte zapomínat | Databázový svět

    Copyright (c) 2004 AVRE Publishing, spol. s r.o. Všechna práva vyhrazena