All Products
Search
Document Center

ApsaraDB RDS:Sesuaikan parameter instans

Last Updated:Jul 16, 2026

Parameter yang dikonfigurasi secara salah dapat menurunkan performa atau menyebabkan error aplikasi pada instans ApsaraDB RDS for MySQL Anda. Topik ini menyediakan nilai yang direkomendasikan dan panduan penyetelan untuk parameter utama.

Diagnostik parameter

ApsaraDB RDS for MySQL mendukung diagnostik parameter, yang menganalisis pengaturan instans saat ini berdasarkan aturan dan rumus yang ditentukan oleh ahli, lalu memberikan saran penyetelan. Gunakan diagnostik parameter bersama panduan dalam topik ini untuk mengoptimalkan instans Anda.

Templat parameter menyediakan titik awal dengan nilai prasetel untuk skenario umum. Dalam praktiknya, parameter utama harus disesuaikan agar sesuai dengan workload Anda—nilai default tidak dioptimalkan untuk setiap kasus penggunaan.

Catatan

Lihat nilai parameter default di Konsol ApsaraDB RDS.

Perilaku restart

Beberapa parameter yang cakupannya adalah Global,Session—sebagaimana didokumentasikan dalam MySQL 8.0 dan MySQL 5.7—hanya berlaku setelah koneksi ulang atau restart. Melakukan restart instans menyebabkan pemutusan koneksi singkat. Jadwalkan restart selama jam sepi.

Referensi parameter

Manajemen koneksi

back_log

Property Value
Supported versions MySQL 8.0, 5.7, 5.6, 5.5
Restart required Yes
Transient connection Yes — modify during off-peak hours

Mengontrol panjang antrian koneksi ketika instans menangani sejumlah besar koneksi singkat. Ketika antrian penuh, instans menolak permintaan koneksi baru.

Symptom: Nilai yang terlalu kecil menyebabkan error aplikasi berikut:

SQLSTATE[HY000] [2002] Connection timed out

Recommended value: 3000

net_write_timeout

Property Value
Supported versions MySQL 8.0, 5.7, 5.6, 5.5
Restart required No
Transient connection No

Menetapkan berapa lama instans menunggu sebelum mengirim blok ke client.

Symptom: Nilai yang terlalu kecil menyebabkan error client berikut:

"the last packet successfully received from the server was milliseconds ago"
"the last packet sent successfully to the server was milliseconds ago"

Recommended value: 60 (detik, nilai default). Jika jaringan tidak stabil atau client memerlukan waktu lama untuk memproses setiap blok, tingkatkan nilai ini untuk mencegah pemutusan koneksi yang tidak diinginkan.

innodb_lock_wait_timeout

Property Value
Supported versions MySQL 8.0, 5.7, 5.6
Restart required No
Transient connection No

Menetapkan waktu maksimum (dalam detik) yang ditunggu transaksi InnoDB untuk kunci baris sebelum transaksi dibatalkan.

Recommended value: 50

Konkurensi dan manajemen thread

innodb_thread_concurrency

Property Value
Supported versions MySQL 8.0, 5.7, 5.6
Restart required No
Transient connection No

Menetapkan jumlah maksimum thread konkuren di dalam InnoDB. Nilai 0 menghapus batasan tersebut.

Recommended value: 0 (tidak terbatas), kecuali jika Anda sedang melakukan troubleshooting masalah performa konkurensi tinggi.

loose_rds_threads_running_high_watermark

Property Value
Supported versions MySQL 5.6, 5.5
Restart required No
Transient connection No

Membatasi jumlah total kueri konkuren. Misalnya, menetapkan nilai ini ke 100 memungkinkan hingga 100 kueri MySQL konkuren; kueri tambahan akan ditolak.

Gunakan parameter ini untuk melindungi instans dari lonjakan traffic dan beban berlebih saat jam sibuk.

thread_pool_enabled

Property Value
Supported versions MySQL 8.0, 5.7, 5.6
Restart required No
Transient connection No

Mengaktifkan atau menonaktifkan fitur thread pool.

Recommended value: ON

thread_pool_size

Property Value
Supported versions MySQL 8.0, 5.7
Restart required No
Transient connection No

Menetapkan jumlah grup thread dalam kolam thread.

Recommended value: {LEAST(DBInstanceClassCPU × 2, 64)}

thread_pool_oversubscribe

Property Value
Supported versions MySQL 8.0, 5.7, 5.6
Restart required No
Transient connection No

Menetapkan jumlah maksimum thread aktif per grup thread.

Recommended value: 32

thread_stack

Property Value
Supported versions MySQL 8.0, 5.7, 5.6
Restart required Yes
Transient connection Yes — modify during off-peak hours

Menetapkan kedalaman stack untuk setiap thread pengguna. Nilai yang terlalu kecil menyebabkan kueri SQL rekursif yang dalam gagal.

Recommended value: 1048576

Kolam buffer dan memori

innodb_buffer_pool_size

Property Value
Supported versions MySQL 8.0, 5.7, 5.6
Restart required MySQL 8.0 and 5.7: No / MySQL 5.6: Yes
Transient connection MySQL 8.0 and 5.7: No / MySQL 5.6: Yes — modify during off-peak hours

Menetapkan ukuran kolam buffer InnoDB—area memori utama untuk caching data tabel dan indeks. Kolam buffer yang berukuran tepat menjaga working set Anda (data dan indeks yang paling sering diakses oleh kueri) tetap berada di memori, sehingga secara signifikan mengurangi I/O disk.

Recommended value: {DBInstanceClassMemory × 3/4}

innodb_buffer_pool_instances

Property Value
Supported versions MySQL 8.0, 5.7, 5.6
Restart required Yes
Transient connection Yes — modify during off-peak hours

Membagi kolam buffer menjadi beberapa instans yang dikelola secara independen untuk mendukung pembacaan dan penulisan konkuren. Berlaku hanya ketika innodb_buffer_pool_size melebihi 1 GB.

Recommended value: {LEAST(DBInstanceClassMemory/1073741824, 8)}

innodb_max_dirty_pages_pct_lwm

Property Value
Supported versions MySQL 8.0, 5.7, 5.6
Restart required No
Transient connection No

Menetapkan ambang batas persentase halaman kotor yang memicu pre-flushing. Nilainya harus lebih kecil dari innodb_max_dirty_pages_pct. Menetapkannya ke 0 menonaktifkan pre-flushing.

Recommended value: 10

innodb_lru_scan_depth

Property Value
Supported versions MySQL 8.0, 5.7, 5.6
Restart required No
Transient connection No

Menetapkan seberapa dalam thread page-cleaner memindai daftar Least Recently Used (LRU) di setiap instans kolam buffer saat melakukan flushing halaman kotor.

Recommended value: {LEAST(DBInstanceClassMemory/1048576/8, 8192)}

innodb_page_cleaners

Property Value
Supported versions MySQL 8.0, 5.7
Restart required Yes
Transient connection Yes — modify during off-peak hours

Menetapkan jumlah thread page-cleaner yang digunakan untuk melakukan flushing halaman kotor dari instans kolam buffer. Jika nilai ini melebihi jumlah instans kolam buffer, sistem secara otomatis membatasinya pada nilai innodb_buffer_pool_instances. Nilai default-nya adalah 4.

Recommended value: 8

tmp_table_size

Property Value
Supported versions MySQL 8.0, 5.7, 5.6, 5.5
Restart required No
Transient connection No

Menetapkan ukuran maksimum tabel temporary internal berbasis memori per thread. Batas efektifnya adalah nilai yang lebih kecil antara tmp_table_size atau max_heap_table_size. Ketika tabel temporary melebihi batas ini, MySQL mengonversinya menjadi tabel berbasis disk (InnoDB di MySQL 8.0; MyISAM di versi sebelumnya).

Symptom: Kueri kompleks dengan GROUP BY atau DISTINCT yang tidak dapat dilayani oleh indeks berjalan lebih lambat ketika tabel temporary dialihkan ke disk.

Default value: 2097152. Tingkatkan pada instans dengan memori yang cukup jika kueri mengandung banyak klausa GROUP BY atau DISTINCT.

Performa I/O dan flushing

innodb_io_capacity

Property Value
Supported versions MySQL 8.0, 5.7, 5.6
Restart required No
Transient connection No

Menetapkan jumlah maksimum operasi I/O per detik yang dapat dikonsumsi oleh tugas latar belakang InnoDB.

Recommended value: 20000

innodb_io_capacity_max

Property Value
Supported versions MySQL 8.0, 5.7, 5.6
Restart required No
Transient connection No

Menetapkan IOPS maksimum yang dapat digunakan InnoDB ketika flushing tertinggal dari laju yang dikonfigurasi.

Recommended value: 40000

innodb_flush_neighbors

Property Value
Supported versions MySQL 8.0, 5.7, 5.6
Restart required No
Transient connection No

Mengontrol apakah InnoDB melakukan flushing halaman kotor tetangga saat melakukan flushing halaman kotor. Nilai yang valid:

  • 0: Hanya melakukan flushing halaman kotor target.

  • 1: Melakukan flushing halaman target dan tetangganya dalam extent yang sama.

  • 2: Melakukan flushing semua halaman kotor dalam extent yang sama.

Recommended value: 0

innodb_change_buffering

Property Value
Supported versions MySQL 8.0, 5.7, 5.6
Restart required No
Transient connection No

Menunda operasi tulis pada indeks sekunder untuk mengubah I/O acak menjadi I/O sekuensial. Ini membantu pada HDD tetapi memberikan manfaat terbatas pada perangkat penyimpanan modern.

Recommended value: none

Log redo

innodb_log_file_size

Property Value
Supported versions MySQL 8.0, 5.7, 5.6
Restart required Yes
Transient connection Yes — modify during off-peak hours

Menetapkan ukuran setiap file log dalam kelompok log redo. Ukuran total log redo adalah innodb_log_file_size × innodb_log_files_in_group dan tidak boleh melebihi 512 GB. Nilai default-nya adalah 48 MB.

File log yang lebih besar mengurangi frekuensi checkpoint dan I/O disk, tetapi meningkatkan waktu pemulihan saat crash. Tetapkan nilai ini cukup besar sehingga instans dapat menangani traffic tulis selama lebih dari satu jam, sehingga menghaluskan perbedaan antara I/O saat jam sibuk dan jam sepi.

Recommended value: Konfigurasikan berdasarkan spesifikasi instans Anda.

Handle file

open_files_limit

Property Value
Supported versions MySQL 8.0, 5.7, 5.6
Restart required Yes
Transient connection Yes — modify during off-peak hours

Menetapkan jumlah handle file yang dapat dibuka instans secara simultan. Juga memengaruhi innodb_open_files.

Recommended values:

  • MySQL 5.6: 65535

  • MySQL 5.7 dan 8.0: 655350

Untuk instans dengan 32 core CPU atau lebih dan sejumlah besar sesi aktif atau tabel, tetapkan nilai ini sedikit di atas jumlah aktual file instans.

innodb_open_files

Property Value
Supported versions MySQL 8.0, 5.7, 5.6
Restart required Yes
Transient connection Yes — modify during off-peak hours

Menetapkan jumlah maksimum handle file yang dapat dibuka InnoDB secara bersamaan.

Symptom: Nilai yang terlalu kecil menyebabkan peringatan berikut yang menurunkan performa:

[Warning] [MY-012152] [InnoDB] Open files * exceeds the limit *

Recommended value: 20000

table_open_cache

Property Value
Supported versions MySQL 8.0, 5.7, 5.6
Restart required No
Transient connection No

Menetapkan jumlah maksimum tabel yang disimpan server dalam cache tabel di seluruh semua instans cache tabel. Nilai yang terlalu kecil menurunkan performa kueri dalam kondisi konkurensi tinggi; nilai yang terlalu besar meningkatkan konsumsi memori. Pantau penggunaan memori saat menaikkan nilai ini.

Recommended value: {LEAST(DBInstanceClassMemory/1073741824 × 1024, 16384)}

table_open_cache_instances

Property Value
Supported versions MySQL 8.0, 5.7, 5.6
Restart required Yes
Transient connection Yes — modify during off-peak hours

Membagi cache tabel menjadi instans terpisah, masing-masing berukuran table_open_cache / table_open_cache_instances. Ini mengurangi kontensi pada cache tabel di seluruh sesi.

Recommended value: 16

Auto-increment dan locking

innodb_autoinc_lock_mode

Property Value
Supported versions MySQL 8.0, 5.7, 5.6, 5.5
Restart required Yes
Transient connection Yes — modify during off-peak hours

Mengontrol cara InnoDB mengelola kunci auto-increment untuk primary key auto-increment. Nilai yang valid:

  • 0 (traditional): Menahan kunci AUTO-INC selama durasi penuh pernyataan. Secara signifikan membatasi konkurensi INSERT.

  • 1 (consecutive, default): Menahan kunci AUTO-INC secara singkat. Melepaskannya segera untuk insert baris tetap; menahannya selama durasi penuh pernyataan untuk insert baris variabel.

  • 2 (interleaved): Melepaskan kunci AUTO-INC segera setelah nilai ditetapkan, terlepas dari apakah jumlah baris bersifat tetap atau tidak.

Recommended value: 2. Ini menghilangkan deadlock AUTO-INC dan meningkatkan performa INSERT … SELECT.

Catatan

Menetapkan nilai ini ke 2 mengharuskan format log biner menjadi ROW.

innodb_adaptive_hash_index

Property Value
Supported versions MySQL 8.0, 5.7, 5.6
Restart required No
Transient connection No

Mengaktifkan atau menonaktifkan indeks hash adaptif, yang membantu InnoDB menemukan halaman kolam buffer dengan cepat berdasarkan pola kueri.

Symptom: Saat diaktifkan (ON), pernyataan tertentu—terutama DDL—dapat memicu pemeliharaan indeks hash adaptif, memblokir kueri lain atau menurunkan performa.

Recommended value: OFF. Untuk informasi latar belakang, lihat Praktik terbaik indeks hash adaptif ApsaraDB RDS for MySQL.

Replikasi

rpl_semi_sync_master_timeout

Property Value
Supported versions MySQL 8.0, 5.7, 5.6
Restart required No
Transient connection No

Menetapkan berapa lama instans RDS primary menunggu instans RDS secondary mengakui penerimaan log biner sebelum transaksi dikomit. Jika timeout terlampaui, replikasi turun dari semi-sinkron menjadi asinkron. Setelah secondary mengejar ketinggalan, replikasi secara otomatis kembali ke mode semi-sinkron.

Recommended value: 1000 (milidetik, setara 1 detik). Untuk workload yang memerlukan keandalan data tinggi, tingkatkan nilai ini untuk mencegah degradasi ke replikasi asinkron. Perlu diketahui bahwa nilai besar dapat menyebabkan permintaan tulis tertahan selama transaksi jangka panjang, yang mungkin memicu komponen ketersediaan tinggi (HA) mendeteksi kegagalan instans dan memulai alih bencana instans.

slave_parallel_workers

Property Value
Supported versions MySQL 8.0, 5.7, 5.6
Restart required No
Transient connection No

Menetapkan jumlah thread replay paralel pada instans RDS secondary. Terlalu sedikit thread membatasi throughput replay paralel dan meningkatkan latensi replikasi.

Recommended value: {GREATEST(DBInstanceClassCPU, 8)}

binlog_transaction_dependency_tracking

Property Value
Supported versions MySQL 8.0 (minor version ≥ 20210930), MySQL 5.7 (minor version ≥ 20211231)
Restart required No
Transient connection No

Menentukan cara MySQL melacak dependensi transaksi untuk replikasi paralel. Menetapkan nilai ini ke WRITESET mengaktifkan deteksi konflik tingkat baris, memungkinkan replay paralel yang lebih cepat pada instans RDS secondary.

Recommended value: WRITESET. Tetapkan transaction_write_set_extraction sebelum mengubah parameter ini. Untuk detailnya, lihat Modifikasi parameter terkait WRITESET.

binlog_transaction_dependency_history_size

Property Value
Supported versions MySQL 8.0 (minor version ≥ 20210930), MySQL 5.7 (minor version ≥ 20211231)
Restart required No
Transient connection No

Menetapkan jumlah maksimum entri transaksi terhash yang disimpan dalam memori untuk pelacakan dependensi. Ketika batas tercapai, semua entri dihapus.

Symptom: Nilai yang terlalu kecil mengurangi konkurensi replay paralel pada instans RDS secondary, meningkatkan latensi replikasi.

Recommended value: 500000. Untuk detailnya, lihat Modifikasi parameter terkait WRITESET.

transaction_write_set_extraction

Property Value
Supported versions MySQL 8.0 (minor version ≥ 20210930), MySQL 5.7 (minor version ≥ 20211231)
Restart required No
Transient connection No

Menetapkan algoritma hash yang digunakan oleh WRITESET.

Recommended value: XXHASH64. Untuk detailnya, lihat Modifikasi parameter terkait WRITESET.

Cache kueri (MySQL 5.7 dan sebelumnya)

query_cache_size

Property Value
Supported versions MySQL 5.7, 5.6, 5.5
Restart required No
Transient connection No

Mengontrol memori yang dialokasikan untuk cache kueri MySQL. Saat diaktifkan, MySQL memeriksa cache sebelum mengeksekusi kueri. Pada workload yang dominan membaca dengan tulisan jarang, ini dapat meningkatkan performa. Pada workload yang dominan menulis, mekanisme lock cache kueri menyebabkan konflik sering yang menurunkan performa SELECT.

Symptom: Banyak koneksi terjebak dalam status berikut:

checking query cache for query
waiting for query cache lock
storing result in query cache

Recommended value: Biarkan dinonaktifkan (nilai default ApsaraDB RDS). Jika Anda sebelumnya mengaktifkan cache kueri dan melihat gejala di atas, nonaktifkan.

Pengoptimal kueri

eq_range_index_dive_limit

Property Value
Supported versions MySQL 8.0, 5.7, 5.6
Restart required No
Transient connection No

Mengontrol kapan pengoptimal beralih dari index dive ke estimasi berbasis statistik untuk kondisi equality range. Untuk kueri seperti:

col_name IN (val1, ..., valN)
col_name = val1 OR ... OR col_name = valN

Jika N kurang dari batas ini, pengoptimal mengambil sampel data menggunakan index dive. Jika N lebih besar dari atau sama dengan batas ini, pengoptimal menggunakan statistik tabel sebagai gantinya.

Untuk informasi lebih lanjut, lihat Dokumentasi MySQL tentang eq_range_index_dive_limit.

Recommended values:

  • MySQL 5.6: 10

  • MySQL 5.7 dan 8.0: 100

File temporary dan disk space

loose_rds_max_tmp_disk_space

Property Value
Supported versions MySQL 5.6, 5.5
Restart required No
Transient connection No

Membatasi ukuran total file temporary pada instans.

Symptom: Melebihi batas ini menyebabkan error berikut:

The table '/home/mysql/dataxxx/tmp/#sql_2db3_1' is full

Pertama, periksa apakah pernyataan SQL yang menghasilkan file temporary dapat dioptimalkan. Jika instans memiliki ruang disk yang cukup dan kueri tidak dapat dihindari, tingkatkan nilai ini.

Akselerasi DDL

loose_innodb_rds_faster_ddl

Property Value
Supported versions MySQL 8.0, 5.7, 5.6 (minor version ≥ 20200630)
Restart required No
Transient connection No

Mempercepat operasi DDL tertentu (seperti perubahan skema) menggunakan mekanisme manajemen kolam buffer yang dikembangkan oleh tim ApsaraDB RDS, sehingga mengurangi dampak DDL terhadap workload yang sedang berjalan.

Recommended value: Diaktifkan.

Indeks teks penuh

innodb_ft_cache_size

Property Value
Supported versions MySQL 8.0, 5.7, 5.6
Restart required Yes
Transient connection Yes — modify during off-peak hours

Menetapkan memori (dalam byte) yang dialokasikan untuk data indeks teks penuh per tabel.

Recommended value: 8000000

innodb_ft_total_cache_size

Property Value
Supported versions MySQL 8.0, 5.7, 5.6
Restart required Yes
Transient connection Yes — modify during off-peak hours

Menetapkan total memori (dalam byte) yang dialokasikan untuk data indeks teks penuh di seluruh semua tabel pada instans.

Recommended value: 640000000

innodb_ft_result_cache_limit

Property Value
Supported versions MySQL 8.0, 5.7, 5.6
Restart required No
Transient connection No

Menetapkan batas memori (dalam byte) untuk set hasil setiap kueri indeks teks penuh.

Recommended value: 2000000000

Internals InnoDB

innodb_purge_threads

Property Value
Supported versions MySQL 8.0, 5.7, 5.6
Restart required Yes
Transient connection Yes — modify during off-peak hours

Menetapkan jumlah thread latar belakang yang digunakan InnoDB untuk purge record undo. Lebih banyak thread meningkatkan throughput purge, mencegah akumulasi file undo, dan meningkatkan performa DML serta kueri pada beberapa workload.

Recommended value: LEAST(DBInstanceClassMemory/1073741824, 8)

innodb_sync_array_size

Property Value
Supported versions MySQL 8.0, 5.7, 5.6
Restart required Yes
Transient connection Yes — modify during off-peak hours

Menetapkan ukuran array mutex/lock wait. Nilai yang lebih besar meningkatkan konkurensi untuk workload yang menghasilkan banyak thread menunggu. Parameter ini dibaca saat startup dan tidak dapat diubah saat runtime. Jika jumlah thread menunggu sering melebihi 768, tingkatkan nilai ini.

Recommended value: 128

innodb_parallel_read_threads

Property Value
Supported versions MySQL 8.0 (minor version ≥ 20200831)
Restart required No
Transient connection No

Menetapkan jumlah thread konkuren untuk pemindaian primary key. Parameter ini memiliki bug yang diketahui.

Recommended value: 0 (dinonaktifkan)

Monitoring dan logging

performance_schema

Property Value
Supported versions MySQL 8.0, 5.7, 5.6
Restart required Yes
Transient connection

Mengaktifkan atau menonaktifkan Performance Schema, yang menginstrumentasi eksekusi internal MySQL. Mengaktifkannya menambahkan overhead memori dan dapat memengaruhi performa.

Recommended value: OFF

general_log

Property Value
Supported versions MySQL 8.0, 5.7, 5.6
Restart required No
Transient connection No

Mengaktifkan atau menonaktifkan general query log, yang mencatat setiap pernyataan yang diterima server.

Symptom: Mengaktifkan log ini dapat menghabiskan kapasitas penyimpanan instans. Untuk informasi lebih lanjut, lihat FAQ tentang fitur general query log.

Recommended value: OFF

Zona waktu

default_time_zone

Property Value
Supported versions MySQL 8.0, 5.7, 5.6
Restart required Yes
Transient connection Yes — modify during off-peak hours

Menetapkan zona waktu default server.

Symptom: Zona waktu yang tidak diatur atau tidak sesuai menyebabkan konversi waktu salah, timestamp tidak konsisten, dan penggunaan CPU lebih tinggi akibat penyesuaian zona waktu yang sering—terutama pada aplikasi yang melayani beberapa wilayah.

Recommended value: Tetapkan berdasarkan kebutuhan bisnis Anda. Untuk detailnya, lihat Praktik terbaik parameter time_zone di ApsaraDB RDS for MySQL.

Parameter MySQL 5.6

loose_tokudb_buffer_pool_ratio

Property Value
Supported versions MySQL 5.6
Restart required Yes
Transient connection Yes — modify during off-peak hours

Menetapkan persentase memori buffer yang dapat digunakan tabel TokuDB, relatif terhadap innodb_buffer_pool_size. Misalnya, jika innodb_buffer_pool_size adalah 1000 MB dan parameter ini diatur ke 50, tabel TokuDB dapat menggunakan hingga 500 MB.

Tingkatkan nilai ini jika tabel TokuDB merupakan workload utama pada instans.

loose_max_statement_time

Property Value
Supported versions MySQL 5.6
Restart required No
Transient connection No

Menetapkan waktu eksekusi maksimum untuk kueri, dalam milidetik. Kueri yang melebihi batas ini akan diinterupsi. Secara default, durasi kueri tidak terbatas.

Symptom: Melebihi batas menyebabkan error berikut:

ERROR 3006 (HY000): Query execution was interrupted, max_statement_time exceeded
Catatan
  • Perubahan pada parameter ini hanya berlaku untuk koneksi baru. Koneksi yang sudah ada harus melakukan reconnect agar nilai baru diterapkan.

  • Di MySQL 5.6, waktu eksekusi SQL maksimum dikontrol oleh loose_max_statement_time dan loose_max_execution_time. Untuk memastikan perubahan berlaku, modifikasi kedua parameter secara bersamaan.

Tetapkan parameter ini ketika Anda perlu menerapkan batas waktu kueri pada instans.