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í OFFInnoDB 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_modeOFF 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 ONhodnotu . 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_pctserveru . 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_secondsnakonfigurovat . 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:

  1. Na webu Azure Portal přejděte na server a v části Nastavení vyberte Parametry serveru.

  2. V okně Parametry serveru vyhledejte event_schedulerv 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í.

  3. 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());
    
  4. 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)
    
  5. 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)
    
  6. 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