MySQL je nejrychleji rostoucí open-source systém pro správu relačních databází s dosud 100 miliony stažení. Jde o oblíbenou databázi pro použití ve webových aplikacích a v současnosti ji používá mnoho velkých webových stránek, včetně Facebooku, Twitteru, Wikipedie, Flickru, YouTube atd. Nyní se pojďme podívat na 10 nejzajímavějších faktů a tipů o MySQL.
Zajímavá fakta a tipy o MySQL
1. MySQL podporuje až 64 indexů na tabulku. Každý index se může skládat z 1 až 16 sloupců. Maximální velikost indexu je 1000 bajtů (767 pro InnoDB).
2. Maximální velikost řádku v tabulce MySQL je 65 535 bajtů. A maximální hodnota celého čísla se znaménkem je 2 147 483 647 a hodnota celého čísla bez znaménka je 4 294 967 295. Ve smíšené tabulce s CHAR i VARCHAR MySQL změní CHAR na VARCHAR.
3. Pokud se PRIMARY KEY nebo UNIQUE index skládá pouze z jednoho sloupce, který má typ celé číslo, můžete tento sloupec v příkazech SELECT také označit jako „_rowid“.
4. Chcete-li změnit hodnotu AUTO_INCREMENT, použijte “ALTER TABLE
5. Chcete-li omezit veřejný přístup k MySQL, použijte volbu „skip-networking“ v konfiguračním souboru. Když je povoleno, MySQL naslouchá pouze místním soketovým připojením a ignoruje všechny TCP porty. A parametr „bind-address“, který je nastaven na „127.0.0.1“, omezuje přístup k MySQL pouze místnímu hostiteli.
6. Pokud má MySQL vytvořeno mnoho připojení (tj. web bez trvalých připojení), můžete zlepšit výkon nastavením thread_cache_size na nenulovou hodnotu. 16 je pro začátek dobrá hodnota. Zvyšte hodnotu, dokud vaše threads_created neporoste příliš rychle.
7. NO_AUTO_VALUE_ON_ZERO potlačí automatické zvýšení na 0. Pouze NULL generuje další pořadové číslo. Tento režim může být užitečný, pokud byla ve sloupci AUTO_INCREMENT tabulky uložena 0. (Mimochodem, ukládání 0 se nedoporučuje.)
8. Možnosti konfigurace „innodb_analyze_is_persistent“, „innodb_stats_persistent_sample_pages“ a „innodb_stats_transient_sample_pages“ poskytují lepší přesnost statistik indexu InnoDB a konzistenci napříč restarty MySQL. InnoDB předpočítává statistiky, které pomáhají optimalizátoru rozhodnout, které indexy použít v dotazu, vzorkováním části indexu. Můžete upravit množství vzorkování, které InnoDB provádí pro každý index. Výsledné statistiky nyní mohou přetrvávat po restartování serveru, místo aby byly přepočítávány (a případně měněny) kvůli restartům a některým událostem za běhu. Přesnější statistiky mohou zlepšit výkon dotazů a aspekt persistence může udržet výkon dotazů stabilní. Když je povolena funkce trvalých statistik, statistiky se přepočítávají pouze tehdy, když pro tabulku explicitně spustíte ANALYZE TABLE.
9. InnoDB uvolní paměť spojenou s otevřenou tabulkou, aby se ulehčilo zatížení paměti na systémech s velkým počtem tabulek. Algoritmus LRU vybere tabulky, které byly nejdéle bez přístupu. Chcete-li rezervovat více paměti pro otevřené tabulky, zvyšte hodnotu konfigurační možnosti –table_definition_cache=#.
10. Nastavte parametr table_cache tak, aby odpovídal počtu otevřených tabulek a souběžných připojení. Sledujte hodnotu open_tables a pokud rychle roste, musíte zvětšit velikost „table_cache“. A pro parametr „open_file_limit“ nastavte tento limit na 20+max_connections+table_cache*2. Pokud máte složité dotazy „sort_buffer_size“ a „tmp_table_size“, budou pravděpodobně velmi důležité. Hodnoty budou záviset na složitosti dotazu a dostupných zdrojích, ale doporučenými výchozími body jsou 4 Mb a 32 Mb.
Poznámka:Toto jsou hodnoty „na připojení“. Při nastavování těchto parametrů tedy zvažte své zatížení a dostupné zdroje. Například sort_buffer_size je alokována pouze v případě, že MySQL potřebuje provést třídění, dejte pozor, aby vám nedošla paměť.