Parametry serveru ve službě Azure Database for MySQL
PLATÍ PRO: Jednoúčelový server Azure Database for MySQL
Důležité
Jednoúčelový server Azure Database for MySQL je na cestě vyřazení. Důrazně doporučujeme upgradovat na flexibilní server Azure Database for MySQL. Další informace o migraci na flexibilní server Azure Database for MySQL najdete v tématu Co se děje s jednoúčelovým serverem Azure Database for MySQL?
Tento článek obsahuje důležité informace a pokyny pro konfiguraci parametrů serveru ve službě Azure Database for MySQL.
Co jsou parametry serveru?
Modul MySQL poskytuje mnoho různých proměnných serveru a parametrů, které používáte ke konfiguraci a ladění chování modulu. Některé parametry je možné během běhu nastavit dynamicky, zatímco jiné jsou statické a vyžadují restartování serveru, aby bylo možné použít.
Azure Database for MySQL zpřístupňuje možnost změnit hodnotu různých parametrů serveru MySQL pomocí webu Azure Portal, Azure CLI a PowerShellu tak, aby odpovídaly potřebám vaší úlohy.
Konfigurovatelné parametry serveru
Seznam podporovaných parametrů serveru neustále roste. Na webu Azure Portal pomocí karty parametry serveru zobrazte úplný seznam a nakonfigurujte hodnoty parametrů serveru.
Další informace o limitech několika běžně aktualizovaných parametrů serveru najdete v následujících částech. Limity jsou určeny cenovou úrovní a virtuálními jádry serveru.
Fondy vláken
MySQL tradičně přiřazuje vlákno pro každé připojení klienta. S rostoucím počtem souběžných uživatelů dochází k odpovídajícímu poklesu výkonu. Mnoho aktivních vláken může výrazně ovlivnit výkon, a to kvůli zvýšenému přepínání kontextu, kolize vláken a špatné lokalitě pro mezipaměti procesoru.
Fondy vláken, funkce na straně serveru a odlišné od sdružování připojení, maximalizují výkon zavedením dynamického fondu pracovních vláken. Pomocí této funkce omezíte počet aktivních vláken spuštěných na serveru a minimalizujete četnost změn vláken. To pomáhá zajistit, že nárůst připojení nezpůsobí, že server nemá nedostatek prostředků nebo paměti. Fondy vláken jsou nejúčinnější pro krátké dotazy a úlohy náročné na procesor, jako jsou úlohy OLTP.
Další informace najdete v tématu Úvod do fondů vláken ve službě Azure Database for MySQL.
Poznámka:
Fondy vláken nejsou podporovány pro MySQL 5.6.
Konfigurace fondu vláken
Chcete-li povolit fond vláken, aktualizujte thread_handling
parametr serveru na pool-of-threads
. Ve výchozím nastavení je tento parametr nastaven na one-thread-per-connection
, což znamená, že MySQL vytvoří nové vlákno pro každé nové připojení. Jedná se o statický parametr a vyžaduje restartování serveru, aby se použilo.
Můžete také nakonfigurovat maximální a minimální počet vláken ve fondu nastavením následujících parametrů serveru:
thread_pool_max_threads
: Tato hodnota omezuje počet vláken ve fondu.thread_pool_min_threads
: Tato hodnota nastaví počet vláken, která jsou vyhrazena, i když jsou připojení uzavřena.
Pokud chcete zlepšit problémy s výkonem krátkých dotazů ve fondu vláken, můžete povolit dávkové spouštění. Místo toho, abyste se vrátili zpět do fondu vláken ihned po spuštění dotazu, vlákna zůstanou aktivní po krátkou dobu, než počká na další dotaz prostřednictvím tohoto připojení. Vlákno pak dotaz spustí rychle a po dokončení se vlákno počká na další. Tento proces pokračuje, dokud celkový čas strávený přesáhne prahovou hodnotu.
Chování dávkového spouštění určíte pomocí následujících parametrů serveru:
thread_pool_batch_wait_timeout
: Tato hodnota určuje čas, kdy vlákno čeká na zpracování jiného dotazu.thread_pool_batch_max_time
: Tato hodnota určuje maximální dobu, po kterou vlákno zopakuje cyklus provádění dotazu a čeká na další dotaz.
Důležité
Nevypínejte fond vláken v produkčním prostředí, dokud ho neotestujete.
log_bin_trust_function_creators
Ve službě Azure Database for MySQL jsou binární protokoly vždy povolené ( log_bin
parametr je nastavený na ON
). Pokud chcete použít triggery, zobrazí se chyba podobná této: Nemáte oprávnění SUPER a binární protokolování je povolené (můžete chtít použít méně bezpečnou log_bin_trust_function_creators
proměnnou).
Binární formát protokolování je vždy ŘÁDEK a všechna připojení k serveru vždy používají binární protokolování založené na řádcích. Binární protokolování založené na řádcích pomáhá udržovat zabezpečení a binární protokolování nemůže přerušit, takže můžete bezpečně nastavit log_bin_trust_function_creators
.TRUE
innodb_buffer_pool_size
Další informace o tomto parametru najdete v dokumentaci k MySQL.
Servery na úložišti pro obecné účely verze 1 (podporující až 4 TB)
Cenová úroveň | Virtuální jádra | Výchozí hodnota (bajty) | Minimální hodnota (bajty) | Maximální hodnota (bajty) |
---|---|---|---|---|
Basic | 0 | 872415232 | 134217728 | 872415232 |
Basic | 2 | 2684354560 | 134217728 | 2684354560 |
Pro obecné účely | 2 | 3758096384 | 134217728 | 3758096384 |
Pro obecné účely | 4 | 8053063680 | 134217728 | 8053063680 |
Pro obecné účely | 8 | 16106127360 | 134217728 | 16106127360 |
Pro obecné účely | 16 | 32749125632 | 134217728 | 32749125632 |
Pro obecné účely | 32 | 66035122176 | 134217728 | 66035122176 |
Pro obecné účely | 64 | 132070244352 | 134217728 | 132070244352 |
Optimalizováno pro paměť | 2 | 7516192768 | 134217728 | 7516192768 |
Optimalizováno pro paměť | 4 | 16106127360 | 134217728 | 16106127360 |
Optimalizováno pro paměť | 8 | 32212254720 | 134217728 | 32212254720 |
Optimalizováno pro paměť | 16 | 65498251264 | 134217728 | 65498251264 |
Optimalizováno pro paměť | 32 | 132070244352 | 134217728 | 132070244352 |
Servery na úložišti pro obecné účely v2 (podpora až 16 TB)
Cenová úroveň | Virtuální jádra | Výchozí hodnota (bajty) | Minimální hodnota (bajty) | Maximální hodnota (bajty) |
---|---|---|---|---|
Basic | 0 | 872415232 | 134217728 | 872415232 |
Basic | 2 | 2684354560 | 134217728 | 2684354560 |
Pro obecné účely | 2 | 7516192768 | 134217728 | 7516192768 |
Pro obecné účely | 4 | 16106127360 | 134217728 | 16106127360 |
Pro obecné účely | 8 | 32212254720 | 134217728 | 32212254720 |
Pro obecné účely | 16 | 65498251264 | 134217728 | 65498251264 |
Pro obecné účely | 32 | 132070244352 | 134217728 | 132070244352 |
Pro obecné účely | 64 | 264140488704 | 134217728 | 264140488704 |
Optimalizováno pro paměť | 2 | 15032385536 | 134217728 | 15032385536 |
Optimalizováno pro paměť | 4 | 32212254720 | 134217728 | 32212254720 |
Optimalizováno pro paměť | 8 | 64424509440 | 134217728 | 64424509440 |
Optimalizováno pro paměť | 16 | 130996502528 | 134217728 | 130996502528 |
Optimalizováno pro paměť | 32 | 264140488704 | 134217728 | 264140488704 |
innodb_file_per_table
MySQL ukládá InnoDB
tabulku v různých tabulkových prostorech na základě konfigurace, kterou zadáte při vytváření tabulky. Systémový tabulkový prostor je oblast úložiště pro InnoDB
datový slovník. Tablespace pro jednotlivé tabulky obsahuje data a indexy pro jednu InnoDB
tabulku a je uložena v systému souborů ve vlastním datovém souboru.
Toto chování řídíte pomocí parametru innodb_file_per_table
serveru. Nastavení innodb_file_per_table
, které způsobí OFF
InnoDB
vytvoření tabulek v systémovém prostoru tabulek InnoDB
V opačném případě vytvoří tabulky v tabulkových prostorech pro jednotlivé soubory.
Poznámka:
Aktualizace můžete provést innodb_file_per_table
pouze v cenových úrovních pro obecné účely a optimalizováno pro paměť v úložišti pro obecné účely verze 2 a úložiště pro obecné účely verze 1.
Azure Database for MySQL podporuje 4 TB (největší) v jednom datovém souboru v úložišti pro obecné účely v2. Pokud je velikost databáze větší než 4 TB, měli byste tabulku vytvořit v innodb_file_per_table tabulkovém prostoru. Pokud máte jednu tabulku větší než 4 TB, měli byste použít tabulku oddílů.
join_buffer_size
Další informace o tomto parametru najdete v dokumentaci k MySQL.
Cenová úroveň | Virtuální jádra | Výchozí hodnota (bajty) | Minimální hodnota (bajty) | Maximální hodnota (bajty) |
---|---|---|---|---|
Basic | 0 | Nejde konfigurovat na úrovni Basic | – | N/A |
Basic | 2 | Nejde konfigurovat na úrovni Basic | – | N/A |
Pro obecné účely | 2 | 262144 | 128 | 268435455 |
Pro obecné účely | 4 | 262144 | 128 | 536870912 |
Pro obecné účely | 8 | 262144 | 128 | 1073741824 |
Pro obecné účely | 16 | 262144 | 128 | 2147483648 |
Pro obecné účely | 32 | 262144 | 128 | 4294967295 |
Pro obecné účely | 64 | 262144 | 128 | 4294967295 |
Optimalizováno pro paměť | 2 | 262144 | 128 | 536870912 |
Optimalizováno pro paměť | 4 | 262144 | 128 | 1073741824 |
Optimalizováno pro paměť | 8 | 262144 | 128 | 2147483648 |
Optimalizováno pro paměť | 16 | 262144 | 128 | 4294967295 |
Optimalizováno pro paměť | 32 | 262144 | 128 | 4294967295 |
max_connections
Cenová úroveň | Virtuální jádra | Výchozí hodnota | Minimální hodnota | Maximální hodnota |
---|---|---|---|---|
Basic | 0 | 50 | 10 | 50 |
Basic | 2 | 100 | 10 | 100 |
Pro obecné účely | 2 | 300 | 10 | 600 |
Pro obecné účely | 4 | 625 | 10 | 1250 |
Pro obecné účely | 8 | 1250 | 10 | 2500 |
Pro obecné účely | 16 | 2500 | 10 | 5000 |
Pro obecné účely | 32 | 5000 | 10 | 10000 |
Pro obecné účely | 64 | 10000 | 10 | 200 000 |
Optimalizováno pro paměť | 2 | 625 | 10 | 1250 |
Optimalizováno pro paměť | 4 | 1250 | 10 | 2500 |
Optimalizováno pro paměť | 8 | 2500 | 10 | 5000 |
Optimalizováno pro paměť | 16 | 5000 | 10 | 10000 |
Optimalizováno pro paměť | 32 | 10000 | 10 | 200 000 |
Pokud počet připojení překročí limit, může se zobrazit chyba.
Tip
Pokud chcete efektivně spravovat připojení, je vhodné použít nástroj pro sdružování připojení, jako je ProxySQL. Další informace o nastavení ProxySQL najdete v blogovém příspěvku o vyrovnávání zatížení replik pro čtení pomocí ProxySQL ve službě Azure Database for MySQL. Upozorňujeme, že ProxySQL je opensourcový komunitní nástroj. Společnost Microsoft ji podporuje v nejlepším úsilí.
max_heap_table_size
Další informace o tomto parametru najdete v dokumentaci k MySQL.
Cenová úroveň | Virtuální jádra | Výchozí hodnota (bajty) | Minimální hodnota (bajty) | Maximální hodnota (bajty) |
---|---|---|---|---|
Basic | 0 | Nejde konfigurovat na úrovni Basic | – | N/A |
Basic | 2 | Nejde konfigurovat na úrovni Basic | – | N/A |
Pro obecné účely | 2 | 16777216 | 16384 | 268435455 |
Pro obecné účely | 4 | 16777216 | 16384 | 536870912 |
Pro obecné účely | 8 | 16777216 | 16384 | 1073741824 |
Pro obecné účely | 16 | 16777216 | 16384 | 2147483648 |
Pro obecné účely | 32 | 16777216 | 16384 | 4294967295 |
Pro obecné účely | 64 | 16777216 | 16384 | 4294967295 |
Optimalizováno pro paměť | 2 | 16777216 | 16384 | 536870912 |
Optimalizováno pro paměť | 4 | 16777216 | 16384 | 1073741824 |
Optimalizováno pro paměť | 8 | 16777216 | 16384 | 2147483648 |
Optimalizováno pro paměť | 16 | 16777216 | 16384 | 4294967295 |
Optimalizováno pro paměť | 32 | 16777216 | 16384 | 4294967295 |
query_cache_size
Mezipaměť dotazů je ve výchozím nastavení vypnutá. Pokud chcete povolit mezipaměť dotazů, nakonfigurujte query_cache_type
parametr.
Další informace o tomto parametru najdete v dokumentaci k MySQL.
Poznámka:
Mezipaměť dotazů je v mySQL 5.7.20 zastaralá a v MySQL 8.0 byla odebrána.
Cenová úroveň | Virtuální jádra | Výchozí hodnota (bajty) | Minimální hodnota (bajty) | Maximální hodnota |
---|---|---|---|---|
Basic | 0 | Nejde konfigurovat na úrovni Basic | – | N/A |
Basic | 2 | Nejde konfigurovat na úrovni Basic | – | N/A |
Pro obecné účely | 2 | 0 | 0 | 16777216 |
Pro obecné účely | 4 | 0 | 0 | 33554432 |
Pro obecné účely | 8 | 0 | 0 | 67108864 |
Pro obecné účely | 16 | 0 | 0 | 134217728 |
Pro obecné účely | 32 | 0 | 0 | 134217728 |
Pro obecné účely | 64 | 0 | 0 | 134217728 |
Optimalizováno pro paměť | 2 | 0 | 0 | 33554432 |
Optimalizováno pro paměť | 4 | 0 | 0 | 67108864 |
Optimalizováno pro paměť | 8 | 0 | 0 | 134217728 |
Optimalizováno pro paměť | 16 | 0 | 0 | 134217728 |
Optimalizováno pro paměť | 32 | 0 | 0 | 134217728 |
lower_case_table_names
Parametr lower_case_table_name
je standardně nastavený na hodnotu 1 a tento parametr můžete aktualizovat v MySQL 5.6 a MySQL 5.7.
Další informace o tomto parametru najdete v dokumentaci k MySQL.
Poznámka:
Ve výchozím nastavení je v MySQL 8.0 lower_case_table_name
nastavená hodnota 1 a nemůžete ji změnit.
innodb_strict_mode
Pokud se zobrazí chyba podobná Row size too large (> 8126)
této, zvažte vypnutí parametru innodb_strict_mode
. Globální úpravy nemůžete změnit innodb_strict_mode
na úrovni serveru. Pokud je velikost dat řádků větší než 8 tisíc, data se zkrátí bez oznámení o chybě, což vede k potenciální ztrátě dat. Je vhodné upravit schéma tak, aby odpovídalo limitu velikosti stránky.
Tento parametr můžete nastavit na úrovni relace pomocí parametru init_connect
. Pokud chcete nastavit innodb_strict_mode
na úrovni relace, projděte si parametr nastavení, který tu není uvedený.
Poznámka:
Pokud máte server repliky pro čtení, nastavení innodb_strict_mode
OFF
na úrovni relace na zdrojovém serveru přeruší replikaci. Doporučujeme ponechat parametr nastavený na ON
, pokud máte repliky pro čtení.
sort_buffer_size
Další informace o tomto parametru najdete v dokumentaci k MySQL.
Cenová úroveň | Virtuální jádra | Výchozí hodnota (bajty) | Minimální hodnota (bajty) | Maximální hodnota (bajty) |
---|---|---|---|---|
Basic | 0 | Nejde konfigurovat na úrovni Basic | – | N/A |
Basic | 2 | Nejde konfigurovat na úrovni Basic | – | N/A |
Pro obecné účely | 2 | 524288 | 32768 | 4194304 |
Pro obecné účely | 4 | 524288 | 32768 | 8388608 |
Pro obecné účely | 8 | 524288 | 32768 | 16777216 |
Pro obecné účely | 16 | 524288 | 32768 | 33554432 |
Pro obecné účely | 32 | 524288 | 32768 | 33554432 |
Pro obecné účely | 64 | 524288 | 32768 | 33554432 |
Optimalizováno pro paměť | 2 | 524288 | 32768 | 8388608 |
Optimalizováno pro paměť | 4 | 524288 | 32768 | 16777216 |
Optimalizováno pro paměť | 8 | 524288 | 32768 | 33554432 |
Optimalizováno pro paměť | 16 | 524288 | 32768 | 33554432 |
Optimalizováno pro paměť | 32 | 524288 | 32768 | 33554432 |
tmp_table_size
Další informace o tomto parametru najdete v dokumentaci k MySQL.
Cenová úroveň | Virtuální jádra | Výchozí hodnota (bajty) | Minimální hodnota (bajty) | Maximální hodnota (bajty) |
---|---|---|---|---|
Basic | 0 | Nejde konfigurovat na úrovni Basic | – | N/A |
Basic | 2 | Nejde konfigurovat na úrovni Basic | – | N/A |
Pro obecné účely | 2 | 16777216 | 1024 | 67108864 |
Pro obecné účely | 4 | 16777216 | 1024 | 134217728 |
Pro obecné účely | 8 | 16777216 | 1024 | 268435456 |
Pro obecné účely | 16 | 16777216 | 1024 | 536870912 |
Pro obecné účely | 32 | 16777216 | 1024 | 1073741824 |
Pro obecné účely | 64 | 16777216 | 1024 | 1073741824 |
Optimalizováno pro paměť | 2 | 16777216 | 1024 | 134217728 |
Optimalizováno pro paměť | 4 | 16777216 | 1024 | 268435456 |
Optimalizováno pro paměť | 8 | 16777216 | 1024 | 536870912 |
Optimalizováno pro paměť | 16 | 16777216 | 1024 | 1073741824 |
Optimalizováno pro paměť | 32 | 16777216 | 1024 | 1073741824 |
InnoDB buffer pool warmup
Po restartování služby Azure Database for MySQL se načtou datové stránky, které se nacházejí na disku, protože se na tabulky dotazují. To vede ke zvýšení latence a pomalejšímu výkonu při prvním spuštění dotazů. U úloh, které jsou citlivé na latenci, může být tento pomalejší výkon nepřijatelný.
K zkrácení doby zahřívání bazénu můžete použít InnoDB
vyrovnávací paměť. Tento proces znovu načte diskové stránky, které byly ve fondu vyrovnávací paměti před restartováním, a nečeká na operace DML nebo SELECT pro přístup k odpovídajícím řádkům. Další informace najdete v tématu Parametry serveru fondu vyrovnávací paměti InnoDB.
Vyšší výkon ale nastává na úkor delší doby spuštění serveru. Při povolení tohoto parametru se očekává zvýšení doby spuštění a restartování serveru v závislosti na počtu IOPS zřízených na serveru. Je vhodné otestovat a monitorovat čas restartování, abyste měli jistotu, že je spuštění nebo restartování přijatelné, protože server během této doby není dostupný. Tento parametr nepoužívejte, pokud je počet zřízených IOPS menší než 1 000 IOPS (jinými slovy, pokud je zřízené úložiště menší než 335 GB).
Chcete-li uložit stav fondu vyrovnávací paměti při vypnutí serveru, nastavte parametr innodb_buffer_pool_dump_at_shutdown
serveru na ON
hodnotu . Podobně nastavte parametr innodb_buffer_pool_load_at_startup
serveru tak, aby ON
se při spuštění serveru obnovil stav fondu vyrovnávací paměti. Dopad na spuštění nebo restartování můžete řídit snížením a vyladěním hodnoty parametru innodb_buffer_pool_dump_pct
serveru . Ve výchozím nastavení je tento parametr nastaven na 25
.
Poznámka:
InnoDB
Parametry zahřátí fondu vyrovnávací paměti jsou podporovány pouze na serverech úložiště pro obecné účely s úložištěm až 16 TB. Další informace najdete v tématu Možnosti úložiště Azure Database for MySQL.
time_zone
Po počátečním nasazení server se službou Azure Database for MySQL obsahuje systémové tabulky pro informace o časovém pásmu, ale tyto tabulky se nezaplní. Tabulky můžete naplnit voláním mysql.az_load_timezone
uložené procedury z nástrojů, jako je příkazový řádek MySQL nebo MySQL Workbench. Informace o volání uložených procedur a nastavení globálních časových pásem nebo časových pásem na úrovni relace najdete v tématu Práce s parametrem časového pásma (Azure Portal) nebo Práce s parametrem časového pásma (Azure CLI).
binlog_expire_logs_seconds
V Azure Database for MySQL určuje tento parametr počet sekund, po které služba čeká před vymazáním souboru binárního protokolu.
Binární protokol obsahuje události, které popisují změny databáze, jako jsou operace vytváření tabulek nebo změny dat tabulky. Obsahuje také události pro příkazy, které můžou potenciálně provádět změny. Binární protokol se používá hlavně pro dva účely, replikaci a operace obnovení dat.
Binární protokoly se obvykle vymažou, jakmile je popisovač volný od služby, zálohování nebo sady replik. Pokud existuje více replik, binární protokoly čekají, až nejpomalejší replika před vymazáním přečte změny. Pokud chcete, aby binární protokoly trvaly déle, můžete parametr binlog_expire_logs_seconds
nakonfigurovat . Pokud nastavíte binlog_expire_logs_seconds
hodnotu 0
, což je výchozí hodnota, vymaže se jakmile popisovač binárního protokolu uvolní. Pokud nastavíte binlog_expire_logs_seconds
hodnotu větší než 0, binární protokol vyprázdní pouze po uplynutí tohoto časového období.
U služby Azure Database for MySQL se spravované funkce, jako je zálohování a vymazání replik pro čtení binárních souborů, zpracovávají interně. Když replikujete data ze služby Azure Database for MySQL, musíte tento parametr nastavit v primárním objektu, aby se zabránilo vymazání binárních protokolů před tím, než replika načte změny z primární služby. Pokud nastavíte binlog_expire_logs_seconds
hodnotu na vyšší hodnotu, binární protokoly se brzy nevyprázdní. To může vést ke zvýšení fakturace úložiště.
event_scheduler
Ve službě Azure Database for MySQL event_schedule
spravuje parametr serveru vytváření, plánování a spouštění událostí, tj. úlohy, které se spouští podle plánu, a spouští se speciálním vláknem plánovače událostí. event_scheduler
Pokud je parametr nastaven na HODNOTU ON, je vlákno plánovače událostí uvedeno jako proces démon ve výstupu SHOW PROCESSLIST. Události můžete vytvářet a plánovat pomocí následující syntaxe SQL:
CREATE EVENT <event name>
ON SCHEDULE EVERY _ MINUTE / HOUR / DAY
STARTS TIMESTAMP / CURRENT_TIMESTAMP
ENDS TIMESTAMP / CURRENT_TIMESTAMP + INTERVAL 1 MINUTE / HOUR / DAY
COMMENT ‘<comment>’
DO
<your statement>;
Poznámka:
Další informace o vytvoření události najdete v dokumentaci k Plánovači událostí MySQL zde:
Konfigurace parametru serveru event_scheduler
Následující scénář ukazuje jeden ze způsobů použití parametru event_scheduler
ve službě Azure Database for MySQL. Pro předvedení scénáře vezměte v úvahu následující příklad– jednoduchou tabulku:
mysql> describe tab1;
+-----------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-----------+-------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| CreatedAt | timestamp | YES | | NULL | |
| CreatedBy | varchar(16) | YES | | NULL | |
+-----------+-------------+------+-----+---------+----------------+
3 rows in set (0.23 sec)
Pokud chcete nakonfigurovat event_scheduler
parametr serveru ve službě Azure Database for MySQL, proveďte následující kroky:
Na webu Azure Portal přejděte na server a v části Nastavení vyberte Parametry serveru.
V okně Parametry serveru vyhledejte
event_scheduler
v rozevíracím seznamu HODNOTA možnost ZAPNUTO a pak vyberte Uložit.Poznámka:
Změna konfigurace parametru dynamického serveru se nasadí bez restartování.
Pak vytvořte událost, připojte se k serveru MySQL a spusťte následující příkaz SQL:
CREATE EVENT test_event_01 ON SCHEDULE EVERY 1 MINUTE STARTS CURRENT_TIMESTAMP ENDS CURRENT_TIMESTAMP + INTERVAL 1 HOUR COMMENT ‘Inserting record into the table tab1 with current timestamp’ DO INSERT INTO tab1(id,createdAt,createdBy) VALUES('',NOW(),CURRENT_USER());
Pokud chcete zobrazit podrobnosti plánovače událostí, spusťte následující příkaz SQL:
SHOW EVENTS;
Objeví se následující výstup:
mysql> show events; +-----+---------------+-------------+-----------+-----------+------------+----------------+----------------+---------------------+---------------------+---------+------------+----------------------+----------------------+--------------------+ | Db | Name | Definer | Time zone | Type | Execute at | Interval value | Interval field | Starts | Ends | Status | Originator | character_set_client | collation_connection | Database Collation | +-----+---------------+-------------+-----------+-----------+------------+----------------+----------------+---------------------+---------------------+---------+------------+----------------------+----------------------+--------------------+ | db1 | test_event_01 | azureuser@% | SYSTEM | RECURRING | NULL | 1 | MINUTE | 2023-04-05 14:47:04 | 2023-04-05 15:47:04 | ENABLED | 3221153808 | latin1 | latin1_swedish_ci | latin1_swedish_ci | +-----+---------------+-------------+-----------+-----------+------------+----------------+----------------+---------------------+---------------------+---------+------------+----------------------+----------------------+--------------------+ 1 row in set (0.23 sec)
Po několika minutách zadejte dotaz na řádky z tabulky a začněte zobrazovat řádky vložené každou minutu podle parametru
event_scheduler
, který jste nakonfigurovali:mysql> select * from tab1; +----+---------------------+-------------+ | id | CreatedAt | CreatedBy | +----+---------------------+-------------+ | 1 | 2023-04-05 14:47:04 | azureuser@% | | 2 | 2023-04-05 14:48:04 | azureuser@% | | 3 | 2023-04-05 14:49:04 | azureuser@% | | 4 | 2023-04-05 14:50:04 | azureuser@% | +----+---------------------+-------------+ 4 rows in set (0.23 sec)
Po hodině spusťte příkaz Select v tabulce, abyste zobrazili úplný výsledek hodnot vložených do tabulky každou minutu po hodinu, protože
event_scheduler
je v našem případě nakonfigurovaný.mysql> select * from tab1; +----+---------------------+-------------+ | id | CreatedAt | CreatedBy | +----+---------------------+-------------+ | 1 | 2023-04-05 14:47:04 | azureuser@% | | 2 | 2023-04-05 14:48:04 | azureuser@% | | 3 | 2023-04-05 14:49:04 | azureuser@% | | 4 | 2023-04-05 14:50:04 | azureuser@% | | 5 | 2023-04-05 14:51:04 | azureuser@% | | 6 | 2023-04-05 14:52:04 | azureuser@% | ..< 50 lines trimmed to compact output >.. | 56 | 2023-04-05 15:42:04 | azureuser@% | | 57 | 2023-04-05 15:43:04 | azureuser@% | | 58 | 2023-04-05 15:44:04 | azureuser@% | | 59 | 2023-04-05 15:45:04 | azureuser@% | | 60 | 2023-04-05 15:46:04 | azureuser@% | | 61 | 2023-04-05 15:47:04 | azureuser@% | +----+---------------------+-------------+ 61 rows in set (0.23 sec)
Další scénáře
Událost můžete nastavit na základě požadavků konkrétního scénáře. Následuje několik podobných příkladů plánování příkazů SQL tak, aby běžely v různých časových intervalech.
Teď spusťte příkaz SQL a opakujte jeden čas za den bez konce.
CREATE EVENT <event name>
ON SCHEDULE
EVERY 1 DAY
STARTS (TIMESTAMP(CURRENT_DATE) + INTERVAL 1 DAY + INTERVAL 1 HOUR)
COMMENT 'Comment'
DO
<your statement>;
Spuštění příkazu SQL každou hodinu bez konce
CREATE EVENT <event name>
ON SCHEDULE
EVERY 1 HOUR
COMMENT 'Comment'
DO
<your statement>;
Spuštění příkazu SQL každý den bez konce
CREATE EVENT <event name>
ON SCHEDULE
EVERY 1 DAY
STARTS str_to_date( date_format(now(), '%Y%m%d 0200'), '%Y%m%d %H%i' ) + INTERVAL 1 DAY
COMMENT 'Comment'
DO
<your statement>;
Nekonfigurovatelné parametry serveru
Následující parametry serveru nejsou ve službě konfigurovatelné:
Parametr | Pevná hodnota |
---|---|
innodb_file_per_table na úrovni Basic |
OFF |
innodb_flush_log_at_trx_commit |
1 |
sync_binlog |
1 |
innodb_log_file_size |
256 MB |
innodb_log_files_in_group |
2 |
Jiné proměnné, které tu nejsou uvedené, jsou nastavené na výchozí hodnoty MySQL. Projděte si dokumentaci k MySQL pro verze 8.0, 5.7 a 5.6.
Další kroky
- Informace o konfiguraci parametrů serveru pomocí webu Azure Portal
- Informace o konfiguraci parametrů serveru pomocí Azure CLI
- Informace o konfiguraci parametrů serveru pomocí PowerShellu