Portál AbcLinuxu, 23. dubna 2024 08:42

Správa databází v MySQL - III

15. 5. 2003 | David Hauzar
Články - Správa databází v MySQL - III  

Poslední díl seriálu. Typy tabulek, datová struktura, údržba tabulek programem myisamchk, správa databáze programem mysqladmin, některé systémové funkce.

Typy tabulek v MySQL

MySQL nabízí několik typů tabulek. Netransakční (MyISAM, ISAM, MERGE a HEAP) i transakční (BDB, InnoBDB). Netransakční tabulky jsou výkonnější, transakční zase bezpečnější.

Předvoleným (defaultním) typem tabulek je MyISAM. MyISAM je novější obdoba typu ISAM. Další text se bude týkat výhradně těchto tabulek.

Datová struktura MySQL

Data jsou na disku organizována ve formě souborů. Pro každou tabulku (typu MyISAM) jsou vytvořeny tři soubory a to: *.frm, *.myd a *.myi. Soubor *.frm je formátovací soubor a obsahuje datovou strukturu. Soubor *.myd obsahuje data a soubor *.myi obsahuje informace o klíčích a jiných vnitřních křížových odkazech. Tyto soubory najdete většinou v adresáři /var/lib/mysql/Jmeno_Databaze.

Údržba tabulek pomocí programu myisamchk

Program myisamchk slouží údržbě (tedy k získávání informací, kontrole, opravám a optimalizaci) tabulek typu MyISAM.

Syntaxe:

myisamchk [přepínače] Název_Tabulky

Před spuštěním příkazu musíte být v adresáři, kde jsou uložena data databáze, ve které se vyskytuje tabulka, se kterou chcete operovat, nebo musíte uvést úplnou cestu k vybrané tabulce.

Pozor: Pokud používáte program myisamchk, nikdo se nesmí připojit k databázi MySQL. Je proto velmi vhodné vypnout démona mysqld před spuštěním tohoto programu. Je také dobré zálohovat databázi.

Pokud nevypnete démona mysqld, uložte před spuštěním programu myisamchk do tabulek všechna data z mezipaměti serveru. Uděláte to příkazem:

mysqladmin flush-tables

Nejpoužívanější přepínače programu myisamchk
PřepínačAkce
-a, --analyze Analyzuje distribuci klíčů. Urychlí některá spojení tabulek.
-C, --check-only-changed Prověří pouze ty tabulky, které se od poslední kontroly změnily
-#=přepínače, --debug=přepínače Protokoluje ladění. Často se používá ve tvaru "d:t:o, názevsouboru", kde názevsouboru je název souboru, do něhož je protokol o ladění ukládán.
-d, --description Vypíše informace o stavu tabulky.
-e, --extended-check Kopletně prověří vybraný soubor. Obvykle se nepoužívá, protože myisamchk umí najít většinu problémů i bez tohoto přepínače a kompletní prověření může trvat velmi dlouho.
-f, --force Přepisuje dočasné soubory.
-i, --information Vypíše statistické informace o dané tabulce.
-k=počet, --keys-used=počet Používá se s přepínačem -r. Sděluje programu myisamchk, aby před započetím opravy odstranil počet klíčů.
-l, --no-symlinks Určuje, že myisamchk nebude sledovat symbolické odkazy (implicitně je sleduje).
-m, --medium-check Rychlejší, ale méně důkladný, než --extended-check. Najde 99,99% chyb.
-q, --quick Používá se s přepínačem -r. Urychluje proces opravy. Program myisamchk pak opravuje pouze soubory .isd - ne datové soubory.
-r, --recover Spustí obnovení. Opraví většinu problémů kromě konfliktů jedinečných klíčů.
-o, --safe_recover Používá starší, pomalejší metodu obnovení.
-s, --silent Vypíše pouze chyby. -ss vypíše pouze velmi důležité chyby.
-v, --verbose Režim s podrobným výstupem. -vv spustí režim s ještě podrobnějším výstupem.
-S, --sort-index Třídí některé indexové bloky, aby se urychlil běh aplikací, často procházejících záznamy.
-R=index, --sort-records=index Seřadí datové záznamy podle určeného indexu (číslo indexu zjistíte příkazem SHOW INDEX;). Zvýší se tak výkon některých dotazů.
-u, --unpack Rozbalí soubor zabalený příkazem pack_isam.
-V, --version Vypíše číslo verze.
-W, --wait Čeká na uvolnění zamčené tabulky.
-?, --help Zobrazí úplný seznam přepínačů programu myisamchk

Ukázky použití programu myisamchk

Nelze-li před zahájením oprav zastavit server MySQL, může se stát, že aplikace používá původní soubory, i když jste je opravili. Opravené soubory se použijí po zadání příkazu:

mysqladmin reload

Správa databáze programem mysqladmin

Program mysqladmin se používá k mnoha činnostem souvisejícím se správou databáze MySQL. Můžete ho použít například ke změně hesla, vytvoření či odstranění databáze, zjištění informací o stavu a verze databáze atd.

Seznam příkazů programu mysqladmin, jejich přepínačů a krátký popis k nim získáte následujícím příkazem:

mysqladmin

Pokud jste již nastavili uživatelské účty a privilegia k databázím, budete muset při spuštění programu zadat přepínače -u a -p, abyste mohli zadat uživatelské jméno a heslo, které vás bude k používání tohoto programu opravňovat. (V UNIXových systémech zadávejte uživatelské jméno jen tehdy, liší-li od uživatelského jména pro přístup do systému UNIX.)

Vybrané příkazy programu mysqladmin
PříkazAkce
password nove-heslo Změní původní heslo na nové.
flush-hosts Z mezipaměti serveru vyprázdní všechny hostitele.
flush-logs Vyprázdní mezipaměť protokolování.
flush-tables Do tabulek uloží všechna data z mezipaměti serveru.
flush-privileges Do mezipaměti znova načte obsah informačního souboru uživatelských účtů.
refresh Do mezipaměti znova načte obsah informačního souboru uživatelských účtů, zavře a otevře soubory protokolu.
status Ukazuje informace o stavu MySQL jako počet sekund, které uplynuly od spuštění služby MySQL, počet spuštěných vláken, počet dotazů, které MySQL přijala od svého spuštění...
extended-status Vypíše rozšířenou zptávu o stavu serveru.
version Informace o verzi MySQL, verzi protokolu, informace o připojení
variables Vypíše všechny dostupné proměnné
processlist Vypíše informace o tom, kdo dané vlákno spustil, název hostitele, z něhož se uživatel k systému přihlásil, název pracovní databáze vlákna, informace o tom, co procesy vykonávají, ...
ping Používá se ke zjištění, zda je spuštěn démon MySQL.
shutdown Vypne server MySQL.

Některé systémové funkce MySQL

Závěr

V dnešním díle jste se dozvěděli, že v MySQL existuje více typů tabulek. Netransakční typy MyISAM, ISAM, MERGE a HEAP i transakční typy BDB, InnoBDB. Předvoleným typem tabulek je MyISAM.

Data jsou na disku oganizována ve formě souborů. Pro každou tabulku (typu MyISAM) jsou vytvořeny tři soubory a to: *.frm, *.myd a *.myi.

Program myisamchk se používá k získávání informací, kontrole, opravám a optimalizaci tabulek typu MyISAM.

MySQL poskytuje velké množství systémových funkcí.

Program mysqladmin se používá k mnoha činnostem při správě databází MySQL. Například ke změně hesla, vytvoření či odstranění databáze, zjištění informací o stavu a verzi databáze atd.

Tímto dílem seriál o MySQL končí. Jsem rád, že jste ho dočetli až sem. Nyní byste měli především dobře rozumět principu relačních databází a být schopni vytvářet i spravovat databáze na slušné úrovni.

Účel seriálu, co se nevešlo

Tento seriál se snaží být především srozumitelnou a přehlednou referencí toho nejdůležitějšího, co by měl každý tvůrce databází v MySQL znát.

Nejsou zde popsány některé pokročilé vlastnosti, jako transakce, nebo věci přímo nesouvisející s tvorbou nebo správou databází, jako podpora přístupu do databáze z programovacích jazyků. Věřím, že pro vás nebude problém doučit se tyto jednotlivosti z manuálu.

Nejasnosti, chyby, aktualizace a chybějící informace

Seriál je určen i pro úplné začátečníky. Pokud něčemu v něm popsanému nerozumíte, pravděpodobně chyba není ve vás, ale v textu. Narazíte-li tedy na jakoukoliv nejasnost, napište mi a já se pokusím text upravit.

Budu také rád, když napíšete, pokud narazíte na chyby, nepřesnoti, neaktuální informace, nebo pokud budete mít pocit, že v seriálu něco důležitého chybí. O všech úpravách v seriálu provedených se dozvíte zde.

Kde hledat další informace

Pokud se chcete o MySQL dozvědět více, doporučuji nahlédnout do MySQL manuálu. Dále bych vás chtěl upozornit na seriál o MySQL na serveru linuxzone.cz. Je praktičtěji zaměřený než tento, a tak si v něm můžete procvičit své čerstvě nabyté znalosti.

Přeji mnoho šťastných chvil strávených s MySQL.

Související články

Tvorba databází v MySQL - I (Základní pojmy, návrh databáze)
Tvorba databází v MySQL - II (Instalace a používání)
Tvorba databází v MySQL - III (Datové typy)
Tvorba databází v MySQL - IV (Klíče a fulltext)
Tvorba databází v MySQL - V (Základní funkce)
Tvorba databází v MySQL - VI (Datum a čas)
Správa databází v MySQL - I (Zabezpečení)
Správa databází v MySQL - II (Import a export)

Seriál Správa databází v MySQL (dílů: 3)

První díl: Správa databází v MySQL - I, poslední díl: Správa databází v MySQL - III.
Předchozí díl: Správa databází v MySQL - II

Další články z této rubriky

VDR a DVB-T2, část 2.
VDR a DVB-T2, část 1.
Šifrovaný Proxmox VE 6: ZFS, LUKS, systemd_boot a Dropbear
MapTiler – proměňte obrázek v zoomovatelnou mapu
Syncthing

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.