Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Basis data membuat tabel sementara pada disk
Penggunaan tabel sementara pada disk Anda baru-baru ini meningkat secara signifikan, hingga percentage
. Basis data membuat sekitar number
tabel sementara per detik. Hal ini dapat memengaruhi performa dan meningkatkan operasi disk pada db-instance
.
Versi mesin yang didukung
Informasi wawasan ini didukung untuk semua versi Aurora MySQL.
Konteks
Terkadang server MySQL perlu membuat tabel sementara internal saat memproses kueri. Aurora MySQL dapat menyimpan tabel sementara internal dalam memori, tempat tabel dapat diproses oleh mesin penyimpanan TempTable atau MEMORY, atau disimpan pada disk oleh InnoDB. Untuk informasi selengkapnya, lihat Penggunaan Tabel Sementara Internal di MySQL
Kemungkinan penyebab masalah ini
Peningkatan tabel sementara pada disk menunjukkan penggunaan kueri yang kompleks. Jika memori yang dikonfigurasi tidak cukup untuk menyimpan tabel sementara dalam memori, Aurora MySQL akan membuat tabel pada disk. Hal ini dapat memengaruhi performa dan meningkatkan operasi disk.
Tindakan
Kami merekomendasikan tindakan yang berbeda bergantung pada penyebab wawasan Anda.
-
Untuk Aurora MySQL versi 3, sebaiknya Anda menggunakan mesin penyimpanan TempTable.
-
Optimalkan kueri Anda untuk menampilkan lebih sedikit data dengan memilih kolom yang diperlukan saja.
Jika Anda mengaktifkan Skema Performa dengan semua
statement
instrumen diaktifkan dan waktunya diatur, Anda dapat mengkueriSYS.statements_with_temp_tables
untuk mengambil daftar kueri yang menggunakan tabel sementara. Untuk informasi selengkapnya, lihat Prasyarat untuk Menggunakan Skema sysdalam dokumentasi MySQL. -
Pertimbangkan untuk mengindeks kolom yang digunakan dalam operasi pengurutan dan pengelompokan.
-
Tulis ulang kueri Anda untuk menghindari kolom
BLOB
danTEXT
. Kolom ini selalu menggunakan disk. -
Setel parameter basis data berikut:
tmp_table_size
danmax_heap_table_size
.Nilai default untuk parameter ini adalah 16 MiB. Saat menggunakan mesin penyimpanan MEMORY untuk tabel sementara dalam memori, ukuran maksimumnya ditentukan oleh nilai
tmp_table_size
ataumax_heap_table_size
, mana yang lebih kecil. Jika ukuran maksimum ini tercapai, MySQL secara otomatis mengubah tabel sementara internal dalam memori ke tabel sementara internal pada disk InnoDB. Untuk informasi selengkapnya, lihat Menggunakan mesin penyimpanan TempTable di Amazon RDS for MySQL dan Amazon Aurora MySQL. catatan
Jika tabel MEMORY dibuat secara eksplisit dengan CREATE TABLE, hanya variabel
max_heap_table_size
yang menentukan seberapa besar tabel bisa berkembang. Konversi ke format pada disk juga tidak terjadi.
Metrik terkait
Metrik Wawasan Performa berikut terkait dengan wawasan ini:
-
Created_tmp_disk_tables
-
Created_tmp_tables
Untuk informasi selengkapnya, lihat Created_tmp_disk_tables