Meningkatkan performa kueri untuk RDS for PostgreSQL dengan 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 performa kueri untuk RDS for PostgreSQL dengan Amazon RDS Optimized Reads

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

Ikhtisar RDS Optimized Reads di PostgreSQL

Bacaan yang Dioptimalkan tersedia secara default pada RDS untuk PostgreSQL versi 15.2 dan lebih tinggi, 14.7 dan lebih tinggi, dan 13.10 dan lebih tinggi saat menggunakan kelas instans DB berbasis. NVMe Untuk spesifikasi perangkat keras yang menunjukkan instance mana yang digunakan NVMe, lihatSpesifikasi perangkat keras kelas instans DB .

Saat Anda menggunakan RDS untuk instans PostgreSQL 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 (SSD) berbasis Non-Volatile Memory Express NVMe () lokal. Anda dapat mencapai pemrosesan kueri yang lebih cepat dengan menempatkan tabel sementara yang dihasilkan oleh PostgreSQL di penyimpanan lokal, yang akan mengurangi lalu lintas ke Elastic Block Storage (EBS) melalui jaringan.

Di PostgreSQL, objek sementara ditetapkan ke namespace sementara yang menurun 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.

Di RDS for PostgreSQL, parameter temp_tablespaces 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 penyimpanan Amazon EBS dengan memodifikasi parameter ini dalam Parameter group menggunakan AWS Management Console to point ke tablespace selain. rds_temp_tablespace Untuk informasi selengkapnya, lihat . Anda juga dapat menggunakan perintah SET untuk memodifikasi nilai parameter temp_tablespaces menjadi pg_default di tingkat sesi menggunakan perintah SET. Memodifikasi parameter akan mengalihkan area kerja sementara ke Amazon EBS. Peralihan kembali ke Amazon EBS akan membantu ketika penyimpanan lokal untuk klaster atau instans RDS Anda tidak cukup untuk melakukan operasi SQL tertentu.

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

Kasus penggunaan untuk RDS Optimized Reads

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 RDS Optimized Reads

Gunakan praktik terbaik RDS Optimized Reads berikut:

  • 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 RDS Optimized Reads

Saat Anda menyediakan RDS untuk instans PostgreSQL DB dengan salah satu kelas instans DB berbasis dalam penerapan NVMe instans DB tunggal AZ, penerapan instans DB multi-AZ, atau penerapan klaster DB multi-AZ, instans DB secara otomatis menggunakan RDS Optimized Reads.

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

Untuk mengaktifkan RDS Optimized Reads, lakukan salah satu tindakan berikut ini:

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

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

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

Untuk beralih kembali ke instans RDS baca yang tidak dioptimalkan, modifikasi kelas instans DB dari klaster atau instans RDS Anda menjadi kelas instans serupa yang hanya mendukung penyimpanan EBS untuk beban kerja basis data 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 RDS Optimized Reads

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

  • FreeLocalStorage

  • ReadIOPSLocalStorage

  • ReadLatencyLocalStorage

  • ReadThroughputLocalStorage

  • WriteIOPSLocalStorage

  • WriteLatencyLocalStorage

  • WriteThroughputLocalStorage

Metrik ini menyediakan data tentang penyimpanan instans, IOPS, dan throughput yang tersedia. 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 database Anda dan jalankan 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, lihatMengelola file sementara dengan PostgreSQL.

Batasan untuk RDS Optimized Reads di PostgreSQL

Batasan berikut berlaku untuk RDS Optimized Reads di PostgreSQL:

  • Transaksi dapat gagal ketika penyimpanan instans penuh.