Meningkatkan kinerja kueri RDS untuk Postgre dengan SQL Amazon RDS Optimized Reads - Layanan Basis Data Relasional Amazon

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Meningkatkan kinerja kueri RDS untuk Postgre dengan SQL Amazon RDS Optimized Reads

Anda dapat mencapai pemrosesan kueri yang lebih cepat RDS untuk Postgre dengan SQL Amazon RDS Optimized Reads. Instans RDS for Postgre SQL DB atau cluster DB multi-AZ yang menggunakan RDS Optimized Reads dapat mencapai pemrosesan kueri hingga 50% lebih cepat dibandingkan dengan yang tidak menggunakannya.

Ikhtisar Bacaan yang RDS Dioptimalkan di Postgre SQL

Bacaan yang Dioptimalkan tersedia secara default RDS untuk Postgre SQL versi 15.2 dan lebih tinggi, 14.7 dan lebih tinggi, dan 13.10 dan lebih tinggi.

Saat Anda menggunakan instans Postgre SQL DB atau cluster DB Multi-AZ yang mengaktifkan RDS Optimized Reads, ini mencapai kinerja kueri hingga 50% lebih cepat menggunakan penyimpanan tingkat blok solid state drive (NVMe) berbasis Non-Volatile Memory Express () lokal. RDS SSD Anda dapat mencapai pemrosesan kueri yang lebih cepat dengan menempatkan tabel sementara yang dihasilkan oleh Postgre SQL di penyimpanan lokal, yang mengurangi lalu lintas ke Penyimpanan Blok Elastis (EBS) melalui jaringan.

Di PostgreSQL, objek sementara ditugaskan ke namespace sementara yang turun secara otomatis di akhir sesi. Saat menurun, namespace sementara menghapus objek apa pun yang bergantung pada sesi, termasuk objek yang memenuhi syarat skema, seperti tabel, fungsi, operator, atau bahkan ekstensi.

Dalam RDS untuk PostgreSQL, temp_tablespaces parameter dikonfigurasi untuk area kerja sementara ini di mana objek sementara disimpan.

Kueri berikut mengembalikan nama tablespace dan lokasinya.

postgres=> show temp_tablespaces; temp_tablespaces --------------------- rds_temp_tablespace (1 row)

rds_temp_tablespaceIni adalah tablespace yang dikonfigurasi oleh RDS yang menunjuk ke penyimpanan NVMe lokal. Anda selalu dapat beralih kembali ke EBS penyimpanan Amazon dengan memodifikasi parameter ini dalam Parameter group menggunakan AWS Management Console to point ke tablespace selain. rds_temp_tablespace Untuk informasi lebih lanjut, lihat Memodifikasi parameter dalam grup parameter DB. Anda juga dapat menggunakan SET perintah untuk mengubah nilai temp_tablespaces parameter ke pg_default tingkat sesi menggunakan SET perintah. Memodifikasi parameter mengalihkan area kerja sementara ke Amazon. EBS Beralih kembali ke Amazon EBS membantu ketika penyimpanan lokal untuk RDS instans atau klaster Anda tidak cukup untuk melakukan SQL operasi tertentu.

postgres=> SET temp_tablespaces TO 'pg_default'; SET
postgres=> show temp_tablespaces; temp_tablespaces ------------------ pg_default

Kasus penggunaan untuk Pembacaan yang RDS Dioptimalkan

Berikut ini adalah beberapa kasus penggunaan yang dapat memperoleh manfaat dari Optimized Reads:

  • Kueri analitis yang mencakup Ekspresi Tabel Umum (CTEs), tabel turunan, dan operasi pengelompokan.

  • Replika baca yang menangani kueri yang tidak dioptimalkan untuk aplikasi.

  • Kueri pelaporan sesuai permintaan atau dinamis dengan operasi kompleks seperti GROUP BY dan ORDER BY yang tidak selalu dapat menggunakan indeks yang sesuai.

  • Beban kerja lain yang menggunakan tabel sementara internal.

  • CREATE INDEXatau REINDEX operasi untuk menyortir.

Praktik terbaik untuk Pembacaan yang RDS Dioptimalkan

Gunakan praktik terbaik berikut untuk Bacaan yang RDS Dioptimalkan:

  • Tambahkan logika coba lagi untuk kueri hanya baca jika terjadi kegagalan karena penyimpanan instans penuh selama eksekusi.

  • Pantau ruang penyimpanan yang tersedia di penyimpanan instans dengan CloudWatch metrikFreeLocalStorage. Jika penyimpanan instans mencapai batasnya karena beban kerja pada instans DB atau klaster DB Multi-AZ, modifikasi untuk menggunakan kelas instans DB yang lebih besar.

Menggunakan Bacaan yang RDS Dioptimalkan

Saat Anda menyediakan instans Postgre SQL DB RDS untuk salah satu kelas instans DB NVMe berbasis dalam penerapan instans DB AZ tunggal, penerapan instans DB multi-AZ, atau penerapan klaster DB multi-AZ, instans DB secara otomatis menggunakan Bacaan yang Dioptimalkan. RDS

Untuk informasi selengkapnya tentang penerapan Multi-AZ, lihat. Mengonfigurasi dan mengelola penyebaran Multi-AZ untuk Amazon RDS

Untuk mengaktifkan Bacaan yang RDS Dioptimalkan, lakukan salah satu hal berikut:

  • RDSBuat instance Postgre SQL DB atau cluster DB multi-AZ menggunakan salah satu kelas instans DB NVMe berbasis. Untuk informasi selengkapnya, lihat Membuat instans Amazon RDS DB.

  • Ubah yang sudah ada RDS untuk instans Postgre SQL DB atau cluster DB multi-AZ untuk menggunakan salah satu kelas instans DB NVMe berbasis. Untuk informasi selengkapnya, lihat Memodifikasi instans Amazon RDS DB.

RDSBacaan yang Dioptimalkan tersedia di semua Wilayah AWS tempat satu atau lebih kelas instans DB dengan NVMe SSD penyimpanan lokal didukung. Untuk informasi selengkapnya, lihat DB.

Untuk beralih kembali ke RDS instance pembacaan yang tidak dioptimalkan, ubah kelas instans DB RDS instans atau cluster Anda ke kelas instance serupa yang hanya mendukung EBS penyimpanan untuk beban kerja database Anda. Misalnya, jika kelas instans DB saat ini adalah db.r6gd.4xlarge, pilih db.r6g.4xlarge untuk beralih kembali. Untuk informasi selengkapnya, lihat Memodifikasi instans Amazon RDS DB.

Memantau instans DB yang menggunakan Bacaan yang RDS Dioptimalkan

Anda dapat memantau instans DB yang menggunakan Bacaan yang RDS Dioptimalkan menggunakan CloudWatch metrik berikut:

  • FreeLocalStorage

  • ReadIOPSLocalStorage

  • ReadLatencyLocalStorage

  • ReadThroughputLocalStorage

  • WriteIOPSLocalStorage

  • WriteLatencyLocalStorage

  • WriteThroughputLocalStorage

Metrik ini menyediakan data tentang penyimpanan penyimpanan instans yang tersedia,IOPS, dan throughput. Untuk informasi selengkapnya tentang metrik ini, lihat Metrik CloudWatch tingkat instans Amazon untuk Amazon RDS.

Untuk memantau penggunaan penyimpanan lokal Anda saat ini, masuk ke basis data Anda menggunakan kueri berikut:

SELECT spcname AS "Name", pg_catalog.pg_size_pretty(pg_catalog.pg_tablespace_size(oid)) AS "size" FROM pg_catalog.pg_tablespace WHERE spcname IN ('rds_temp_tablespace');

Untuk informasi selengkapnya tentang file sementara dan penggunaannya, lihat Mengelola file sementara dengan SQL Postgre.

Batasan untuk Bacaan yang RDS Dioptimalkan di Postgre SQL

Batasan berikut berlaku untuk Bacaan yang RDS Dioptimalkan di PostgreSQL:

  • Transaksi dapat gagal ketika penyimpanan instans penuh.