Basis data membuat tabel sementara pada disk - Amazon Aurora

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 di Panduan Referensi 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 mengkueri SYS.statements_with_temp_tables untuk mengambil daftar kueri yang menggunakan tabel sementara. Untuk informasi selengkapnya, lihat Prasyarat untuk Menggunakan Skema sys dalam dokumentasi MySQL.

  • Pertimbangkan untuk mengindeks kolom yang digunakan dalam operasi pengurutan dan pengelompokan.

  • Tulis ulang kueri Anda untuk menghindari kolom BLOB dan TEXT. 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 atau max_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 dalam dokumentasi MySQL.