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 on-disk Anda baru-baru ini meningkat secara signifikan, hinggapercentage. Database membuat sekitar tabel number sementara per detik. Ini dapat memengaruhi kinerja dan meningkatkan operasi diskdb-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, di mana ia dapat diproses TempTable oleh atau mesin penyimpanan 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, kami sarankan 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
statementinstrumen diaktifkan dan waktunya diatur, Anda dapat mengueriSYS.statements_with_temp_tablesuntuk mengambil daftar kueri yang menggunakan tabel sementara. Untuk informasi selengkapnya, lihat Prerequisites for Using the sys Schemadalam dokumentasi MySQL. -
Pertimbangkan untuk mengindeks kolom yang digunakan dalam operasi pengurutan dan pengelompokan.
-
Tulis ulang kueri Anda untuk menghindari kolom
BLOBdanTEXT. Kolom ini selalu menggunakan disk. -
Setel parameter basis data berikut:
tmp_table_sizedanmax_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_sizeataumax_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 TempTable penyimpanan di Amazon RDS for MySQL dan Amazon Aurora MySQL. catatan
Jika tabel MEMORY dibuat secara eksplisit dengan CREATE TABLE, hanya variabel
max_heap_table_sizeyang 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