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.
Topik
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_tablespace
Ini 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 INDEX
atauREINDEX
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 metrik
FreeLocalStorage
. 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.