Parameter server di Azure Database for MySQL

BERLAKU UNTUKAzure Database for MySQL - Server Tunggal

Penting

Server tunggal Azure Database for MySQL berada di jalur penghentian. Kami sangat menyarankan Agar Anda meningkatkan ke server fleksibel Azure Database for MySQL. Untuk informasi selengkapnya tentang migrasi ke server fleksibel Azure Database for MySQL, lihat Apa yang terjadi pada Server Tunggal Azure Database for MySQL?

Artikel ini menyediakan pertimbangan dan panduan untuk mengonfigurasi parameter server di Azure Database for MySQL.

Apa itu parameter server?

Mesin MySQL menyediakan banyak variabel/parameter server yang berbeda yang dapat digunakan untuk mengonfigurasi dan menyetel perilaku mesin. Beberapa parameter dapat diatur secara dinamis selama runtime bahasa umum sementara yang lain "statik", membutuhkan hidupkan ulang server untuk diterapkan.

Azure Database for MySQL memaparkan kemampuan untuk mengubah nilai berbagai parameter server MySQL menggunakan portal Microsoft Azure, Azure CLI, dan PowerShell, agar sesuai dengan kebutuhan beban kerja Anda.

Parameter server yang dapat dikonfigurasi

Daftar parameter server yang didukung terus bertambah. Gunakan tab parameter server di portal Microsoft Azure untuk melihat daftar lengkap dan mengonfigurasi nilai parameter server.

Lihat bagian berikut untuk mempelajari selengkapnya tentang batas beberapa parameter server yang umum diperbarui. Batas ditentukan oleh tingkat harga dan vCore server.

Kumpulan utas

MySQL secara tradisional menetapkan utas untuk setiap koneksi klien. Seiring bertambahnya jumlah pengguna bersamaan, ada penurunan performa yang sesuai. Banyak rangkaian aktif dapat memengaruhi performa secara signifikan karena peningkatan pengalihan konteks, konflik rangkaian, dan pelokalan buruk untuk cache CPU.

Kumpulan rangkaian, fitur sisi server dan berbeda dari kumpulan koneksi, memaksimalkan kinerja dengan memperkenalkan kumpulan utas pekerja yang dinamis. Anda menggunakan fitur ini untuk membatasi jumlah rangkaian aktif yang berjalan di server dan meminimalkan churn rangkaian. Ini membantu memastikan bahwa ledakan koneksi tidak menyebabkan server kehabisan sumber daya atau memori. Kumpulan rangkaian paling efisien untuk kueri pendek dan beban kerja intensif CPU, misalnya beban kerja OLTP.

Untuk informasi selengkapnya, lihat Memperkenalkan kumpulan rangkaian di Azure Database for MySQL.

Catatan

Kumpulan rangkaian tidak didukung untuk MySQL 5.6.

Mengonfigurasi kumpulan rangkaian

Untuk mengaktifkan kumpulan rangkaian, perbarui thread_handlingparameter server ke pool-of-threads. Secara default, parameter ini diatur ke one-thread-per-connection, yang berarti MySQL membuat rangkaian baru untuk setiap koneksi baru. Harap dicatat bahwa ini adalah parameter statik dan memerlukan hidupkan ulang server untuk diterapkan.

Anda juga dapat mengonfigurasi jumlah utas maksimum dan minimum di kumpulan dengan mengatur parameter server berikut:

  • thread_pool_max_threads: Nilai ini membatasi jumlah utas dalam kumpulan.
  • thread_pool_min_threads: Nilai ini menetapkan jumlah utas yang dicadangkan, bahkan setelah koneksi ditutup.

Untuk meningkatkan masalah performa kueri singkat pada kumpulan rangkaian, Anda dapat mengaktifkan eksekusi batch. Alih-alih kembali ke kumpulan rangkaian segera setelah menjalankan kueri, rangkaian akan tetap aktif untuk waktu yang singkat untuk menunggu kueri berikutnya melalui koneksi ini. Rangkaian kemudian menjalankan kueri dengan cepat dan, ketika ini selesai, rangkaian menunggu yang berikutnya. Proses ini berlanjut sampai keseluruhan waktu yang dihabiskan melebihi ambang batas.

Anda menentukan perilaku eksekusi batch dengan menggunakan parameter server berikut:

  • thread_pool_batch_wait_timeout: Nilai ini menentukan waktu utas menunggu kueri lain diproses.
  • thread_pool_batch_max_time: Nilai ini menentukan waktu maksimum rangkaian akan mengulangi siklus eksekusi kueri dan menunggu kueri berikutnya.

Penting

Jangan menyalakan kumpulan rangkaian dalam produksi sampai Anda mengujinya.

log_bin_trust_function_creators

Di Azure Database for MySQL, log biner selalu diaktifkan (yaitu log_bin parameter diatur ke ON). Jika Anda ingin menggunakan pemicu, Anda mendapatkan kesalahan yang mirip dengan yang berikut ini: Anda tidak memiliki hak istimewa SUPER dan pengelogan biner diaktifkan (Anda mungkin ingin menggunakan variabel yang kurang aman log_bin_trust_function_creators ).

Format pengelogan biner selalu BARIS dan semua koneksi ke server selalu menggunakan pencatatan biner berbasis baris. Pencatatan biner berbasis baris membantu menjaga keamanan, dan pencatatan biner tidak dapat pecah, sehingga Anda dapat dengan aman mengatur log_bin_trust_function_creators ke TRUE.

innodb_buffer_pool_size

Tinjau Dokumentasi MySQL untuk mempelajari lebih lanjut tentang parameter ini.

Server pada penyimpanan tujuan umum v1 (Mendukung hingga 4-TB)

Tingkat harga vCore Nilai default (byte) Nilai min (byte) Nilai maks (byte)
Dasar 1 872415232 134217728 872415232
Dasar 2 2684354560 134217728 2684354560
Tujuan Umum 2 3758096384 134217728 3758096384
Tujuan Umum 4 8053063680 134217728 8053063680
Tujuan Umum 8 16106127360 134217728 16106127360
Tujuan Umum 16 32749125632 134217728 32749125632
Tujuan Umum 32 66035122176 134217728 66035122176
Tujuan Umum 64 132070244352 134217728 132070244352
Memori Dioptimalkan 2 7516192768 134217728 7516192768
Memori Dioptimalkan 4 16106127360 134217728 16106127360
Memori Dioptimalkan 8 32212254720 134217728 32212254720
Memori Dioptimalkan 16 65498251264 134217728 65498251264
Memori Dioptimalkan 32 132070244352 134217728 132070244352

Server pada penyimpanan tujuan umum v2 (Mendukung hingga 16-TB)

Tingkat harga vCore Nilai default (byte) Nilai min (byte) Nilai maks (byte)
Dasar 1 872415232 134217728 872415232
Dasar 2 2684354560 134217728 2684354560
Tujuan Umum 2 7516192768 134217728 7516192768
Tujuan Umum 4 16106127360 134217728 16106127360
Tujuan Umum 8 32212254720 134217728 32212254720
Tujuan Umum 16 65498251264 134217728 65498251264
Tujuan Umum 32 132070244352 134217728 132070244352
Tujuan Umum 64 264140488704 134217728 264140488704
Memori Dioptimalkan 2 15032385536 134217728 15032385536
Memori Dioptimalkan 4 32212254720 134217728 32212254720
Memori Dioptimalkan 8 64424509440 134217728 64424509440
Memori Dioptimalkan 16 130996502528 134217728 130996502528
Memori Dioptimalkan 32 264140488704 134217728 264140488704

innodb_file_per_table

MySQL menyimpan InnoDB tabel InnoDB di ruang tabel yang berbeda berdasarkan konfigurasi yang Anda berikan selama pembuatan tabel. Tabelspace sistem adalah area penyimpanan untuk kamus data InnoDB. Tabelspace file per tabel berisi data dan indeks untuk satu InnoDB tabel InnoDB, dan disimpan dalam sistem file dalam file datanya sendiri.

Anda mengontrol perilaku ini dengan innodb_file_per_table menggunakan parameter server. Pengaturan innodb_file_per_table untuk OFF menyebabkan InnoDBuntuk membuat tabel di tablespace sistem. Jika tidak, InnoDBmembuat tabel di ruang tablespace file per tabel.

Catatan

Anda hanya dapat memperbarui innodb_file_per_table dalam tingkatan harga tujuan umum dan memori yang dioptimalkan pada penyimpanan tujuan umum v2 dan penyimpanan tujuan umum v1.

Azure Database for MySQL mendukung hingga, 4 TB, dalam satu file data pada penyimpanan tujuan umum v2. Jika ukuran database lebih besar dari 4 TB, Anda harus membuat tabel di tabelspace innodb_file_per_table. Jika Anda memiliki ukuran tabel tunggal yang lebih besar dari 4 TB, Anda harus menggunakan tabel partisi.

join_buffer_size

Tinjau Dokumentasi MySQL untuk mempelajari lebih lanjut tentang parameter ini.

Tingkat harga vCore Nilai default (byte) Nilai min (byte) Nilai maks (byte)
Dasar 1 Tidak dapat dikonfigurasi dalam tingkat Dasar T/A T/A
Dasar 2 Tidak dapat dikonfigurasi dalam tingkat Dasar T/A T/A
Tujuan Umum 2 262144 128 268435455
Tujuan Umum 4 262144 128 536870912
Tujuan Umum 8 262144 128 1073741824
Tujuan Umum 16 262144 128 2147483648
Tujuan Umum 32 262144 128 4294967295
Tujuan Umum 64 262144 128 4294967295
Memori Dioptimalkan 2 262144 128 536870912
Memori Dioptimalkan 4 262144 128 1073741824
Memori Dioptimalkan 8 262144 128 2147483648
Memori Dioptimalkan 16 262144 128 4294967295
Memori Dioptimalkan 32 262144 128 4294967295

max_connections

Tingkat harga vCore Nilai default Nilai min Nilai maks
Dasar 1 50 10 50
Dasar 2 100 10 100
Tujuan Umum 2 300 10 600
Tujuan Umum 4 625 10 1250
Tujuan Umum 8 1250 10 2500
Tujuan Umum 16 2500 10 5000
Tujuan Umum 32 5000 10 10000
Tujuan Umum 64 10000 10 20000
Memori Dioptimalkan 2 625 10 1250
Memori Dioptimalkan 4 1250 10 2500
Memori Dioptimalkan 8 2500 10 5000
Memori Dioptimalkan 16 5000 10 10000
Memori Dioptimalkan 32 10000 10 20000

Ketika jumlah koneksi melebihi batas, Anda mungkin menerima kesalahan.

Tip

Untuk mengelola koneksi secara efisien, ada baiknya anda menggunakan pooler koneksi, seperti ProxySQL. Untuk mempelajari tentang menyiapkan ProxySQL, lihat posting blog Memuat replika baca saldo menggunakan ProxySQL di Azure Database for MySQL. ProxySQL adalah alat komunitas sumber terbuka. Ini didukung oleh Microsoft berdasarkan upaya terbaik.

max_heap_table_size

Tinjau Dokumentasi MySQL untuk mempelajari lebih lanjut tentang parameter ini.

Tingkat harga vCore Nilai default (byte) Nilai min (byte) Nilai maks (byte)
Dasar 1 Tidak dapat dikonfigurasi dalam tingkat Dasar T/A T/A
Dasar 2 Tidak dapat dikonfigurasi dalam tingkat Dasar T/A T/A
Tujuan Umum 2 16777216 16384 268435455
Tujuan Umum 4 16777216 16384 536870912
Tujuan Umum 8 16777216 16384 1073741824
Tujuan Umum 16 16777216 16384 2147483648
Tujuan Umum 32 16777216 16384 4294967295
Tujuan Umum 64 16777216 16384 4294967295
Memori Dioptimalkan 2 16777216 16384 536870912
Memori Dioptimalkan 4 16777216 16384 1073741824
Memori Dioptimalkan 8 16777216 16384 2147483648
Memori Dioptimalkan 16 16777216 16384 4294967295
Memori Dioptimalkan 32 16777216 16384 4294967295

query_cache_size

Cache kueri dinonaktifkan secara default. Untuk mengaktifkan cache kueri, konfigurasikan parameter query_cache_type.

Tinjau Dokumentasi MySQL untuk mempelajari lebih lanjut tentang parameter ini.

Catatan

Cache kueri tidak digunakan lagi setelah MySQL 5.7.20 dan telah dihapus di MySQL 8.0.

Tingkat harga vCore Nilai default (byte) Nilai min (byte) Nilai maks
Dasar 1 Tidak dapat dikonfigurasi dalam tingkat Dasar T/A T/A
Dasar 2 Tidak dapat dikonfigurasi dalam tingkat Dasar T/A T/A
Tujuan Umum 2 0 0 16777216
Tujuan Umum 4 0 0 33554432
Tujuan Umum 8 0 0 67108864
Tujuan Umum 16 0 0 134217728
Tujuan Umum 32 0 0 134217728
Tujuan Umum 64 0 0 134217728
Memori Dioptimalkan 2 0 0 33554432
Memori Dioptimalkan 4 0 0 67108864
Memori Dioptimalkan 8 0 0 134217728
Memori Dioptimalkan 16 0 0 134217728
Memori Dioptimalkan 32 0 0 134217728

lower_case_table_names

lower_case_table_nameparameter diatur ke 1 secara default dan Anda dapat memperbarui parameter ini di MySQL 5.6 dan MySQL 5.7.

Tinjau Dokumentasi MySQL untuk mempelajari lebih lanjut tentang parameter ini.

Catatan

Di MySQL 8.0, lower_case_table_name diatur ke 1 secara default, dan Anda tidak dapat mengubahnya.

innodb_strict_mode

Jika Anda menerima kesalahan yang mirip dengan, pertimbangkan untuk Row size too large (> 8126)mematikan innodb_strict_mode parameter. Anda tidak dapat memodifikasi innodb_strict_mode secara global di tingkat server. Jika ukuran data baris lebih besar dari 8K, data terpotong, tanpa pemberitahuan kesalahan, yang menyebabkan potensi kehilangan data. Sebaiknya ubah skema agar sesuai dengan batas ukuran halaman.

Anda dapat mengatur parameter ini pada tingkat sesi, dengan menggunakan init_connect. Untuk mengatur innodb_strict_mode pada tingkat sesi, lihat parameter pengaturan yang tidak tercantum.

Catatan

Jika Anda memiliki server replika baca, pengaturan innodb_strict_mode ke OFF pada tingkat sesi di server sumber akan merusak replikasi. Kami menyarankan agar parameter tetap diatur ke ON jika Anda telah membaca replika.

sort_buffer_size

Tinjau Dokumentasi MySQL untuk mempelajari lebih lanjut tentang parameter ini.

Tingkat harga vCore Nilai default (byte) Nilai min (byte) Nilai maks (byte)
Dasar 1 Tidak dapat dikonfigurasi dalam tingkat Dasar T/A T/A
Dasar 2 Tidak dapat dikonfigurasi dalam tingkat Dasar T/A T/A
Tujuan Umum 2 524288 32768 4194304
Tujuan Umum 4 524288 32768 8388608
Tujuan Umum 8 524288 32768 16777216
Tujuan Umum 16 524288 32768 33554432
Tujuan Umum 32 524288 32768 33554432
Tujuan Umum 64 524288 32768 33554432
Memori Dioptimalkan 2 524288 32768 8388608
Memori Dioptimalkan 4 524288 32768 16777216
Memori Dioptimalkan 8 524288 32768 33554432
Memori Dioptimalkan 16 524288 32768 33554432
Memori Dioptimalkan 32 524288 32768 33554432

tmp_table_size

Tinjau Dokumentasi MySQL untuk mempelajari lebih lanjut tentang parameter ini.

Tingkat harga vCore Nilai default (byte) Nilai min (byte) Nilai maks (byte)
Dasar 1 Tidak dapat dikonfigurasi dalam tingkat Dasar T/A T/A
Dasar 2 Tidak dapat dikonfigurasi dalam tingkat Dasar T/A T/A
Tujuan Umum 2 16777216 1024 67108864
Tujuan Umum 4 16777216 1024 134217728
Tujuan Umum 8 16777216 1024 268435456
Tujuan Umum 16 16777216 1024 536870912
Tujuan Umum 32 16777216 1024 1073741824
Tujuan Umum 64 16777216 1024 1073741824
Memori Dioptimalkan 2 16777216 1024 134217728
Memori Dioptimalkan 4 16777216 1024 268435456
Memori Dioptimalkan 8 16777216 1024 536870912
Memori Dioptimalkan 16 16777216 1024 1073741824
Memori Dioptimalkan 32 16777216 1024 1073741824

Pemanasan Kumpulan Buffer InnoDB

Setelah memulai ulang server Azure Database for MySQL, halaman data yang berada di disk dimuat saat tabel dikueri. Ini menyebabkan peningkatan latensi dan performa yang lebih lambat untuk eksekusi pertama kueri. Untuk beban kerja yang sensitif terhadap latensi, Anda mungkin menganggap performa yang lebih lambat ini tidak dapat diterima.

Anda dapat menggunakan InnoDB buffer pool warmup untuk mempersingkat periode pemanasan. Proses ini memuat ulang halaman disk yang berada di kumpulan buffer sebelum restart, daripada menunggu operasi DML atau SELECT untuk mengakses baris yang sesuai. Untuk informasi selengkapnya, lihat Parameter server kumpulan buffer InnoDB.

Namun, peningkatan performa datang dengan mengorbankan waktu mulai yang lebih lama untuk server. Ketika Anda mengaktifkan parameter ini, waktu mulai dan mulai ulang server diharapkan meningkat, tergantung pada IOPS yang disediakan di server. Kami merekomendasikan untuk menguji dan memantau waktu hidupkan ulang untuk memastikan performa startup/mulai ulang dapat diterima karena server tidak tersedia selama waktu tersebut. Jangan gunakan parameter ini ketika jumlah IOPS yang disediakan kurang dari 1000 IOPS (dengan kata lain, ketika penyimpanan yang disediakan kurang dari 335 GB).

Untuk menyimpan status kumpulan buffer pada shutdown server, atur parameter server innodb_buffer_pool_dump_at_shutdown ke ON. Demikian, atur parameter server innodb_buffer_pool_load_at_startup ke ON untuk memulihkan status kumpulan buffer pada startup server. Anda dapat mengontrol dampak pada waktu start-up/hidupkan ulang dengan menurunkan dan menyempurnakan nilai parameter server innodb_buffer_pool_dump_pct. Secara default, parameter ini diatur ke 25.

Catatan

InnoDB Parameter pemanasan kumpulan buffer hanya didukung di server penyimpanan tujuan umum dengan penyimpanan hingga 16 TB. Untuk informasi selengkapnya, lihat Azure Database for MySQL.

Zona Waktu

Setelah penyebaran awal, server Azure Database for MySQL menyertakan tabel sistem untuk informasi zona waktu, tetapi tabel ini tidak diisi. Anda dapat mengisi tabel dengan memanggil mysql.az_load_timezone prosedur yang disimpan dari alat seperti baris perintah MySQL atau MySQL Workbench. Untuk informasi tentang cara memanggil prosedur yang disimpan dan mengatur zona waktu tingkat global atau sesi, lihat Bekerja dengan parameter zona waktu (portal Microsoft Azure) atau Bekerja dengan parameter zona waktu (Azure CLI).

binlog_expire_logs_seconds

Di Azure Database for MySQL, parameter ini menentukan jumlah detik layanan menunggu sebelum membersihkan file log biner.

Log biner berisi peristiwa yang menjelaskan perubahan database seperti operasi pembuatan tabel atau perubahan pada data tabel. Ini juga berisi peristiwa untuk pernyataan yang berpotensi membuat perubahan. Log biner digunakan terutama untuk dua tujuan, replikasi dan operasi pemulihan data.

Biasanya, log biner dibersihkan segera setelah handel bebas dari layanan, cadangan atau set replika. Jika ada beberapa replika, log biner menunggu replika terlambat untuk membaca perubahan sebelum dihapus menyeluruh. Jika Anda ingin log biner bertahan lebih lama, Anda dapat mengonfigurasi parameter binlog_expire_logs_seconds. Jika Anda mengatur binlog_expire_logs_seconds ke 0, yang merupakan nilai default, itu membersihkan segera setelah handel ke log biner dibebaskan. Jika Anda mengatur binlog_expire_logs_seconds ke lebih dari 0, maka log biner hanya membersihkan setelah periode waktu itu.

Untuk Azure Database for MySQL, fitur terkelola seperti pencadangan dan penghapusan menyeluruh replika baca file biner ditangani secara internal. Saat Anda mereplikasi data keluar dari layanan Azure Database for MySQL, parameter ini perlu diatur di primer untuk menghindari pembersihan log biner sebelum replika membaca dari perubahan dari primer. Jika Anda mengatur ke binlog_expire_logs_seconds nilai yang lebih tinggi, maka log biner tidak akan segera dibersihkan. Hal ini dapat menyebabkan peningkatan tagihan penyimpanan.

event_scheduler

Di Azure Database for MySQL, event_schedule parameter server mengelola pembuatan, penjadwalan, dan menjalankan peristiwa, yaitu, tugas yang berjalan sesuai dengan jadwal, dan dijalankan oleh utas penjadwal peristiwa khusus. event_scheduler Saat parameter diatur ke AKTIF, utas penjadwal peristiwa dicantumkan sebagai proses daemon dalam output SHOW PROCESSLIST. Anda dapat membuat dan menjadwalkan peristiwa menggunakan sintaks SQL berikut:

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>;

Catatan

Untuk informasi selengkapnya tentang membuat acara, lihat dokumentasi MySQL Event Scheduler di sini:

Mengonfigurasi parameter server event_scheduler

Skenario berikut mengilustrasikan salah satu cara untuk menggunakan event_scheduler parameter di Azure Database for MySQL. Untuk menunjukkan skenario, pertimbangkan contoh berikut, tabel sederhana:

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)

Untuk mengonfigurasi event_scheduler parameter server di Azure Database for MySQL, lakukan langkah-langkah berikut:

  1. Di portal Azure, navigasikan ke server Anda, lalu, di bawah Pengaturan, pilih Parameter server.

  2. Pada bilah Parameter server, cari event_scheduler, di daftar drop-down VALUE , pilih AKTIF, lalu pilih Simpan.

    Catatan

    Perubahan konfigurasi parameter server dinamis akan disebarkan tanpa menghidupkan ulang.

  3. Kemudian untuk membuat peristiwa, sambungkan ke server MySQL, dan jalankan perintah SQL berikut:

    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. Untuk melihat Detail Event Scheduler, jalankan pernyataan SQL berikut:

    SHOW EVENTS;
    

    Output berikut muncul:

    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. Setelah beberapa menit, kueri baris dari tabel untuk mulai menampilkan baris yang disisipkan setiap menit sesuai parameter yang event_scheduler Anda konfigurasi:

    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. Setelah satu jam, jalankan pernyataan Pilih pada tabel untuk melihat hasil lengkap nilai yang disisipkan ke dalam tabel setiap menit selama satu jam saat event_scheduler dikonfigurasi dalam kasus kami.

    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)
    

Skenario lain

Anda dapat menyiapkan peristiwa berdasarkan persyaratan skenario spesifik Anda. Beberapa contoh serupa dari penjadwalan pernyataan SQL untuk dijalankan pada interval waktu yang berbeda mengikuti.

Jalankan pernyataan SQL sekarang dan ulangi satu kali per hari tanpa akhir

CREATE EVENT <event name>
ON SCHEDULE
EVERY 1 DAY
STARTS (TIMESTAMP(CURRENT_DATE) + INTERVAL 1 DAY + INTERVAL 1 HOUR)
COMMENT 'Comment'
DO
<your statement>;

Menjalankan pernyataan SQL setiap jam tanpa akhir

CREATE EVENT <event name>
ON SCHEDULE
EVERY 1 HOUR
COMMENT 'Comment'
DO
<your statement>;

Menjalankan pernyataan SQL setiap hari tanpa akhir

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>;

Parameter server yang tidak dapat dikonfigurasi

Parameter server di bawah tidak dapat dikonfigurasi dalam layanan:

Parameter Nilai tetap
innodb_file_per_table di tingkatan dasar TIDAK AKTIF
innodb_flush_log_at_trx_commit 1
sync_binlog 1
innodb_log_file_size 256 MB
innodb_log_files_in_group 2

Variabel lain yang tidak tercantum di sini diatur ke nilai default MySQL. Lihat dokumen MySQL untuk versi 8.0, 5.7, dan 5.6 untuk nilai default.

Langkah berikutnya