Serverparametrar i Azure Database for MySQL
GÄLLER FÖR: Azure Database for MySQL – enskild server
Viktigt!
Azure Database for MySQL – enskild server är på väg att dras tillbaka. Vi rekommenderar starkt att du uppgraderar till en flexibel Azure Database for MySQL-server. Mer information om hur du migrerar till en flexibel Azure Database for MySQL-server finns i Vad händer med Azure Database for MySQL – enskild server?
Den här artikeln innehåller överväganden och riktlinjer för att konfigurera serverparametrar i Azure Database for MySQL.
Vad är serverparametrar?
MySQL-motorn innehåller många olika servervariabler och parametrar som du använder för att konfigurera och finjustera motorbeteendet. Vissa parametrar kan ställas in dynamiskt under körning, medan andra är statiska och kräver en omstart av servern för att kunna tillämpas.
Azure Database for MySQL gör det möjligt att ändra värdet för olika MySQL-serverparametrar med hjälp av Azure-portalen, Azure CLI och PowerShell för att matcha dina arbetsbelastningsbehov.
Konfigurerbara serverparametrar
Listan över serverparametrar som stöds växer ständigt. I Azure-portalen använder du fliken serverparametrar för att visa den fullständiga listan och konfigurera värden för serverparametrar.
Läs följande avsnitt om du vill veta mer om gränserna för flera vanliga serverparametrar. Gränserna bestäms av serverns prisnivå och virtuella kärnor.
Trådpooler
MySQL tilldelar traditionellt en tråd för varje klientanslutning. I takt med att antalet samtidiga användare växer minskar prestandan. Många aktiva trådar kan påverka prestanda avsevärt på grund av ökad kontextväxling, trådkonkurrens och dålig lokalitet för CPU-cacheminnen.
Trådpooler, en funktion på serversidan och som skiljer sig från anslutningspooler, maximerar prestanda genom att introducera en dynamisk pool med arbetstrådar. Du använder den här funktionen för att begränsa antalet aktiva trådar som körs på servern och minimera trådomsättningen. På så sätt kan du se till att anslutningarna inte tar slut på resurser eller minne på servern. Trådpooler är mest effektiva för korta frågor och processorintensiva arbetsbelastningar, till exempel OLTP-arbetsbelastningar.
Mer information finns i Introduktion till trådpooler i Azure Database for MySQL.
Kommentar
Trådpooler stöds inte för MySQL 5.6.
Konfigurera trådpoolen
Om du vill aktivera en trådpool uppdaterar du serverparametern thread_handling
till pool-of-threads
. Som standard är den här parametern inställd på , vilket innebär att one-thread-per-connection
MySQL skapar en ny tråd för varje ny anslutning. Det här är en statisk parameter och kräver en omstart av servern för att tillämpas.
Du kan också konfigurera maximalt och minsta antal trådar i poolen genom att ange följande serverparametrar:
thread_pool_max_threads
: Det här värdet begränsar antalet trådar i poolen.thread_pool_min_threads
: Det här värdet anger antalet trådar som är reserverade, även efter att anslutningar har stängts.
För att förbättra prestandaproblemen med korta frågor i trådpoolen kan du aktivera batchkörning. I stället för att återgå till trådpoolen direkt efter att en fråga har körts, kommer trådar att vara aktiva en kort tid för att vänta på nästa fråga via den här anslutningen. Tråden kör sedan frågan snabbt och när den är klar väntar tråden på nästa. Den här processen fortsätter tills den totala tiden överskrider ett tröskelvärde.
Du bestämmer beteendet för batchkörning med hjälp av följande serverparametrar:
thread_pool_batch_wait_timeout
: Det här värdet anger hur länge en tråd väntar på att en annan fråga ska bearbetas.thread_pool_batch_max_time
: Det här värdet avgör den maximala tid som en tråd upprepar frågekörningens cykel och väntar på nästa fråga.
Viktigt!
Aktivera inte trådpoolen i produktion förrän du har testat den.
log_bin_trust_function_creators
I Azure Database for MySQL aktiveras alltid binära loggar (parametern log_bin
är inställd på ON
). Om du vill använda utlösare får du ett fel som liknar följande: Du har inte SUPER-behörigheten och binär loggning är aktiverad (du kanske vill använda den mindre säkra log_bin_trust_function_creators
variabeln).
Det binära loggningsformatet är alltid ROW, och alla anslutningar till servern använder alltid radbaserad binär loggning. Radbaserad binär loggning hjälper till att upprätthålla säkerheten och binär loggning kan inte brytas, så du kan ställa in log_bin_trust_function_creators
på TRUE
.
innodb_buffer_pool_size
Läs dokumentationen för MySQL om du vill veta mer om den här parametern.
Servrar på generell lagring v1 (stöd för upp till 4 TB)
Prisnivå | virtuella kärnor | Standardvärde (byte) | Minsta värde (byte) | Maxvärde (byte) |
---|---|---|---|---|
Grundläggande | 1 | 872415232 | 134217728 | 872415232 |
Grundläggande | 2 | 2684354560 | 134217728 | 2684354560 |
Generell användning | 2 | 3758096384 | 134217728 | 3758096384 |
Generell användning | 4 | 8053063680 | 134217728 | 8053063680 |
Generell användning | 8 | 16106127360 | 134217728 | 16106127360 |
Generell användning | 16 | 32749125632 | 134217728 | 32749125632 |
Generell användning | 32 | 66035122176 | 134217728 | 66035122176 |
Generell användning | 64 | 132070244352 | 134217728 | 132070244352 |
Minnesoptimerad | 2 | 7516192768 | 134217728 | 7516192768 |
Minnesoptimerad | 4 | 16106127360 | 134217728 | 16106127360 |
Minnesoptimerad | 8 | 32212254720 | 134217728 | 32212254720 |
Minnesoptimerad | 16 | 65498251264 | 134217728 | 65498251264 |
Minnesoptimerad | 32 | 132070244352 | 134217728 | 132070244352 |
Servrar på generell lagring v2 (stöd för upp till 16 TB)
Prisnivå | virtuella kärnor | Standardvärde (byte) | Minsta värde (byte) | Maxvärde (byte) |
---|---|---|---|---|
Grundläggande | 1 | 872415232 | 134217728 | 872415232 |
Grundläggande | 2 | 2684354560 | 134217728 | 2684354560 |
Generell användning | 2 | 7516192768 | 134217728 | 7516192768 |
Generell användning | 4 | 16106127360 | 134217728 | 16106127360 |
Generell användning | 8 | 32212254720 | 134217728 | 32212254720 |
Generell användning | 16 | 65498251264 | 134217728 | 65498251264 |
Generell användning | 32 | 132070244352 | 134217728 | 132070244352 |
Generell användning | 64 | 264140488704 | 134217728 | 264140488704 |
Minnesoptimerad | 2 | 15032385536 | 134217728 | 15032385536 |
Minnesoptimerad | 4 | 32212254720 | 134217728 | 32212254720 |
Minnesoptimerad | 8 | 64424509440 | 134217728 | 64424509440 |
Minnesoptimerad | 16 | 130996502528 | 134217728 | 130996502528 |
Minnesoptimerad | 32 | 264140488704 | 134217728 | 264140488704 |
innodb_file_per_table
MySQL lagrar InnoDB
tabellen i olika tabellområden, baserat på den konfiguration som du anger när tabellen skapades. Systemtabellområdet är lagringsområdet för InnoDB
dataordlistan. En tabellyta för fil per tabell innehåller data och index för en enskild InnoDB
tabell och lagras i filsystemet i sin egen datafil.
Du styr det här beteendet med hjälp av serverparametern innodb_file_per_table
. Ange innodb_file_per_table
orsaker InnoDB
till OFF
att skapa tabeller i systemtabellområdet. I annat fall InnoDB
skapar du tabeller i tabellutrymmen för fil-per-tabell.
Kommentar
Du kan bara uppdatera innodb_file_per_table
i prisnivåerna generell användning och minnesoptimerad på generell lagring v2 och generell lagring v1.
Azure Database for MySQL stöder 4 TB (som störst) i en enda datafil på generell lagring v2. Om databasstorleken är större än 4 TB bör du skapa tabellen i innodb_file_per_table-tabellområdet. Om du har en tabellstorlek som är större än 4 TB bör du använda partitionstabellen.
join_buffer_size
Läs dokumentationen för MySQL om du vill veta mer om den här parametern.
Prisnivå | virtuella kärnor | Standardvärde (byte) | Minsta värde (byte) | Maxvärde (byte) |
---|---|---|---|---|
Grundläggande | 1 | Kan inte konfigureras på Basic-nivå | Saknas | Saknas |
Grundläggande | 2 | Kan inte konfigureras på Basic-nivå | Saknas | Saknas |
Generell användning | 2 | 262144 | 128 | 268435455 |
Generell användning | 4 | 262144 | 128 | 536870912 |
Generell användning | 8 | 262144 | 128 | 1073741824 |
Generell användning | 16 | 262144 | 128 | 2147483648 |
Generell användning | 32 | 262144 | 128 | 4294967295 |
Generell användning | 64 | 262144 | 128 | 4294967295 |
Minnesoptimerad | 2 | 262144 | 128 | 536870912 |
Minnesoptimerad | 4 | 262144 | 128 | 1073741824 |
Minnesoptimerad | 8 | 262144 | 128 | 2147483648 |
Minnesoptimerad | 16 | 262144 | 128 | 4294967295 |
Minnesoptimerad | 32 | 262144 | 128 | 4294967295 |
max_connections
Prisnivå | virtuella kärnor | Standardvärde | Minsta värde | Maxvärde |
---|---|---|---|---|
Grundläggande | 1 | 50 | 10 | 50 |
Grundläggande | 2 | 100 | 10 | 100 |
Generell användning | 2 | 300 | 10 | 600 |
Generell användning | 4 | 625 | 10 | 1250 |
Generell användning | 8 | 1250 | 10 | 2500 |
Generell användning | 16 | 2500 | 10 | 5000 |
Generell användning | 32 | 5000 | 10 | 10000 |
Generell användning | 64 | 10000 | 10 | 20000 |
Minnesoptimerad | 2 | 625 | 10 | 1250 |
Minnesoptimerad | 4 | 1250 | 10 | 2500 |
Minnesoptimerad | 8 | 2500 | 10 | 5000 |
Minnesoptimerad | 16 | 5000 | 10 | 10000 |
Minnesoptimerad | 32 | 10000 | 10 | 20000 |
När antalet anslutningar överskrider gränsen kan du få ett fel.
Dricks
Om du vill hantera anslutningar effektivt är det en bra idé att använda en anslutningspool, till exempel ProxySQL. Mer information om hur du konfigurerar ProxySQL finns i blogginlägget Läsa in läsrepliker med hjälp av ProxySQL i Azure Database for MySQL. Observera att ProxySQL är ett communityverktyg med öppen källkod. Det stöds av Microsoft på bästa sätt.
max_heap_table_size
Läs dokumentationen för MySQL om du vill veta mer om den här parametern.
Prisnivå | virtuella kärnor | Standardvärde (byte) | Minsta värde (byte) | Maxvärde (byte) |
---|---|---|---|---|
Grundläggande | 1 | Kan inte konfigureras på Basic-nivå | Saknas | Saknas |
Grundläggande | 2 | Kan inte konfigureras på Basic-nivå | Saknas | Saknas |
Generell användning | 2 | 16777216 | 16384 | 268435455 |
Generell användning | 4 | 16777216 | 16384 | 536870912 |
Generell användning | 8 | 16777216 | 16384 | 1073741824 |
Generell användning | 16 | 16777216 | 16384 | 2147483648 |
Generell användning | 32 | 16777216 | 16384 | 4294967295 |
Generell användning | 64 | 16777216 | 16384 | 4294967295 |
Minnesoptimerad | 2 | 16777216 | 16384 | 536870912 |
Minnesoptimerad | 4 | 16777216 | 16384 | 1073741824 |
Minnesoptimerad | 8 | 16777216 | 16384 | 2147483648 |
Minnesoptimerad | 16 | 16777216 | 16384 | 4294967295 |
Minnesoptimerad | 32 | 16777216 | 16384 | 4294967295 |
query_cache_size
Frågecachen är inaktiverad som standard. Konfigurera parametern för query_cache_type
att aktivera frågecachen.
Läs dokumentationen för MySQL om du vill veta mer om den här parametern.
Kommentar
Frågecachen är inaktuell från och med MySQL 5.7.20 och har tagits bort i MySQL 8.0.
Prisnivå | virtuella kärnor | Standardvärde (byte) | Minsta värde (byte) | Maxvärde |
---|---|---|---|---|
Grundläggande | 1 | Kan inte konfigureras på Basic-nivå | Saknas | Saknas |
Grundläggande | 2 | Kan inte konfigureras på Basic-nivå | Saknas | Saknas |
Generell användning | 2 | 0 | 0 | 16777216 |
Generell användning | 4 | 0 | 0 | 33554432 |
Generell användning | 8 | 0 | 0 | 67108864 |
Generell användning | 16 | 0 | 0 | 134217728 |
Generell användning | 32 | 0 | 0 | 134217728 |
Generell användning | 64 | 0 | 0 | 134217728 |
Minnesoptimerad | 2 | 0 | 0 | 33554432 |
Minnesoptimerad | 4 | 0 | 0 | 67108864 |
Minnesoptimerad | 8 | 0 | 0 | 134217728 |
Minnesoptimerad | 16 | 0 | 0 | 134217728 |
Minnesoptimerad | 32 | 0 | 0 | 134217728 |
lower_case_table_names
Parametern lower_case_table_name
är inställd på 1 som standard och du kan uppdatera den här parametern i MySQL 5.6 och MySQL 5.7.
Läs dokumentationen för MySQL om du vill veta mer om den här parametern.
Kommentar
I MySQL 8.0 lower_case_table_name
anges till 1 som standard och du kan inte ändra det.
innodb_strict_mode
Om du får ett fel som liknar Row size too large (> 8126)
kan du inaktivera parametern innodb_strict_mode
. Du kan inte ändra innodb_strict_mode
globalt på servernivå. Om raddatastorleken är större än 8 000 trunkeras data, utan ett felmeddelande, vilket leder till potentiell dataförlust. Det är en bra idé att ändra schemat så att det passar sidstorleksgränsen.
Du kan ange den här parametern på sessionsnivå med hjälp init_connect
av . Om du vill ange innodb_strict_mode
på sessionsnivå läser du inställningsparametern som inte visas.
Kommentar
Om du har en skrivskyddad replikserver kommer replikeringen att OFF
avbrytas om du anger innodb_strict_mode
på sessionsnivå på en källserver. Vi rekommenderar att du behåller parametern inställd på ON
om du har läsrepliker.
sort_buffer_size
Läs dokumentationen för MySQL om du vill veta mer om den här parametern.
Prisnivå | virtuella kärnor | Standardvärde (byte) | Minsta värde (byte) | Maxvärde (byte) |
---|---|---|---|---|
Grundläggande | 1 | Kan inte konfigureras på Basic-nivå | Saknas | Saknas |
Grundläggande | 2 | Kan inte konfigureras på Basic-nivå | Saknas | Saknas |
Generell användning | 2 | 524288 | 32768 | 4194304 |
Generell användning | 4 | 524288 | 32768 | 8388608 |
Generell användning | 8 | 524288 | 32768 | 16777216 |
Generell användning | 16 | 524288 | 32768 | 33554432 |
Generell användning | 32 | 524288 | 32768 | 33554432 |
Generell användning | 64 | 524288 | 32768 | 33554432 |
Minnesoptimerad | 2 | 524288 | 32768 | 8388608 |
Minnesoptimerad | 4 | 524288 | 32768 | 16777216 |
Minnesoptimerad | 8 | 524288 | 32768 | 33554432 |
Minnesoptimerad | 16 | 524288 | 32768 | 33554432 |
Minnesoptimerad | 32 | 524288 | 32768 | 33554432 |
tmp_table_size
Läs dokumentationen för MySQL om du vill veta mer om den här parametern.
Prisnivå | virtuella kärnor | Standardvärde (byte) | Minsta värde (byte) | Maxvärde (byte) |
---|---|---|---|---|
Grundläggande | 1 | Kan inte konfigureras på Basic-nivå | Saknas | Saknas |
Grundläggande | 2 | Kan inte konfigureras på Basic-nivå | Saknas | Saknas |
Generell användning | 2 | 16777216 | 1024 | 67108864 |
Generell användning | 4 | 16777216 | 1024 | 134217728 |
Generell användning | 8 | 16777216 | 1024 | 268435456 |
Generell användning | 16 | 16777216 | 1024 | 536870912 |
Generell användning | 32 | 16777216 | 1024 | 1073741824 |
Generell användning | 64 | 16777216 | 1024 | 1073741824 |
Minnesoptimerad | 2 | 16777216 | 1024 | 134217728 |
Minnesoptimerad | 4 | 16777216 | 1024 | 268435456 |
Minnesoptimerad | 8 | 16777216 | 1024 | 536870912 |
Minnesoptimerad | 16 | 16777216 | 1024 | 1073741824 |
Minnesoptimerad | 32 | 16777216 | 1024 | 1073741824 |
Uppvärmning av InnoDB-buffertpool
När du har startat om Azure Database for MySQL läses de datasidor som finns på disken in när tabellerna efterfrågas. Detta leder till ökad svarstid och långsammare prestanda för den första körningen av frågorna. För arbetsbelastningar som är känsliga för svarstid kan det vara oacceptabelt med långsammare prestanda.
Du kan använda InnoDB
en buffertpoolsuppvärmning för att förkorta uppvärmningsperioden. Den här processen läser in disksidor som fanns i buffertpoolen före omstarten i stället för att vänta på att DML- eller SELECT-åtgärder ska komma åt motsvarande rader. Mer information finns i InnoDB-buffertpoolserverparametrar.
Förbättrade prestanda kommer dock på bekostnad av längre starttid för servern. När du aktiverar den här parametern förväntas start- och omstartstiderna för servern öka, beroende på den IOPS som har etablerats på servern. Det är en bra idé att testa och övervaka omstartstiden för att säkerställa att start- eller omstartsprestandan är acceptabel eftersom servern inte är tillgänglig under den tiden. Använd inte den här parametern när antalet etablerade IOPS är mindre än 1 000 IOPS (med andra ord när den etablerade lagringen är mindre än 335 GB).
Om du vill spara tillståndet för buffertpoolen vid serveravstängning anger du serverparametern innodb_buffer_pool_dump_at_shutdown
till ON
. På samma sätt anger du serverparametern innodb_buffer_pool_load_at_startup
till ON
för att återställa buffertpoolens tillstånd vid serverstart. Du kan styra effekten på start eller omstart genom att sänka och finjustera värdet för serverparametern innodb_buffer_pool_dump_pct
. Som standard är den här parametern inställd på 25
.
Kommentar
InnoDB
parametrar för buffertpoolsuppvärmning stöds endast i allmänna lagringsservrar med upp till 16 TB lagring. Mer information finns i Lagringsalternativ för Azure Database for MySQL.
time_zone
Vid den första distributionen innehåller en server som kör Azure Database for MySQL systemtabeller för tidszonsinformation, men dessa tabeller fylls inte i. Du kan fylla i tabellerna genom att anropa den mysql.az_load_timezone
lagrade proceduren från verktyg som MySQL-kommandoraden eller MySQL Workbench. Information om hur du anropar lagrade procedurer och anger tidszoner på global nivå eller sessionsnivå finns i Arbeta med tidszonsparametern (Azure-portalen) eller Arbeta med tidszonsparametern (Azure CLI).
binlog_expire_logs_seconds
I Azure Database for MySQL anger den här parametern hur många sekunder tjänsten väntar innan den binära loggfilen rensas.
Den binära loggen innehåller händelser som beskriver databasändringar, till exempel åtgärder för att skapa tabeller eller ändringar i tabelldata. Den innehåller också händelser för instruktioner som kan göra ändringar. Den binära loggen används främst för två syften, replikering och dataåterställningsåtgärder.
Vanligtvis rensas de binära loggarna så snart referensen är fri från tjänsten, säkerhetskopieringen eller replikuppsättningen. Om det finns flera repliker väntar de binära loggarna på att den långsammaste repliken ska läsa ändringarna innan de rensas. Om du vill att binära loggar ska sparas längre kan du konfigurera parametern binlog_expire_logs_seconds
. Om du anger binlog_expire_logs_seconds
till 0
, vilket är standardvärdet, rensas det så snart handtaget till den binära loggen frigörs. Om du anger binlog_expire_logs_seconds
till större än 0 rensas endast binärloggen efter den tidsperioden.
För Azure Database for MySQL hanteras hanterade funktioner som säkerhetskopiering och läsning av replikrensning av binära filer internt. När du replikerar data från Azure Database for MySQL-tjänsten måste du ange den här parametern i den primära för att undvika att rensa binära loggar innan repliken läser från ändringarna från den primära. Om du anger binlog_expire_logs_seconds
ett högre värde rensas inte de binära loggarna tillräckligt snart. Detta kan leda till en ökning av lagringsfakturering.
event_scheduler
I Azure Database for MySQL event_schedule
hanterar serverparametern att skapa, schemalägga och köra händelser, d.v.s. uppgifter som körs enligt ett schema, och de körs av en särskild tråd för händelseschemaläggare. När parametern event_scheduler
är inställd på PÅ visas tråden för händelseschemaläggaren som en daemonprocess i utdata från SHOW PROCESSLIST. Du kan skapa och schemalägga händelser med följande SQL-syntax:
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>;
Kommentar
Mer information om hur du skapar en händelse finns i dokumentationen för MySQL Event Scheduler här:
Konfigurera event_scheduler-serverparametern
Följande scenario illustrerar ett sätt att använda parametern event_scheduler
i Azure Database for MySQL. För att demonstrera scenariot bör du överväga följande exempel, en enkel tabell:
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)
Utför följande steg för att konfigurera event_scheduler
serverparametern i Azure Database for MySQL:
I Azure-portalen går du till servern och väljer sedan Serverparametrar under Inställningar.
På bladet Serverparametrar söker
event_scheduler
du efter i listrutan VÄRDE, väljer PÅ och väljer sedan Spara.Kommentar
Konfigurationsändringen av den dynamiska serverparametern distribueras utan omstart.
Skapa sedan en händelse genom att ansluta till MySQL-servern och köra följande SQL-kommando:
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());
Om du vill visa information om event scheduler kör du följande SQL-instruktion:
SHOW EVENTS;
Följande utdata visas:
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)
Efter några minuter frågar du raderna från tabellen för att börja visa raderna som infogas varje minut enligt parametern
event_scheduler
som du konfigurerade: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)
Efter en timme kör du en Select-instruktion i tabellen för att visa det fullständiga resultatet av de värden som infogas i tabellen varje minut i en timme som
event_scheduler
är konfigurerat i vårt fall.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)
Andra scenarier
Du kan konfigurera en händelse baserat på kraven i ditt specifika scenario. Några liknande exempel på schemaläggning av SQL-instruktioner som ska köras med olika tidsintervall följer.
Kör en SQL-instruktion nu och upprepa en gång per dag utan slut
CREATE EVENT <event name>
ON SCHEDULE
EVERY 1 DAY
STARTS (TIMESTAMP(CURRENT_DATE) + INTERVAL 1 DAY + INTERVAL 1 HOUR)
COMMENT 'Comment'
DO
<your statement>;
Köra en SQL-instruktion varje timme utan slut
CREATE EVENT <event name>
ON SCHEDULE
EVERY 1 HOUR
COMMENT 'Comment'
DO
<your statement>;
Kör en SQL-instruktion varje dag utan slut
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>;
Serverparametrar som inte kan konfigureras
Följande serverparametrar kan inte konfigureras i tjänsten:
Parameter | Fast värde |
---|---|
innodb_file_per_table på den grundläggande nivån |
OFF |
innodb_flush_log_at_trx_commit |
1 |
sync_binlog |
1 |
innodb_log_file_size |
256 MB |
innodb_log_files_in_group |
2 |
Andra variabler som inte visas här är inställda på standardvärdena för MySQL. Se MySQL-dokumenten för versionerna 8.0, 5.7 och 5.6.