Mengoptimalkan performa database

Last reviewed 2023-08-06 UTC

Dokumen di Framework Arsitektur Google Cloud ini memberikan rekomendasi untuk membantu Anda mengoptimalkan performa database di Google Cloud.

Cloud SQL

Rekomendasi berikut akan membantu Anda mengoptimalkan performa instance Cloud SQL yang menjalankan database SQL Server, MySQL, dan PostgreSQL.

Untuk informasi selengkapnya, lihat dokumentasi berikut:

Bigtable

Bagian ini memberikan rekomendasi untuk membantu Anda mengoptimalkan performa instance Bigtable.

Merencanakan kapasitas berdasarkan persyaratan performa

Anda dapat menggunakan Bigtable dalam spektrum aplikasi yang luas, masing-masing dengan sasaran pengoptimalan yang berbeda. Misalnya, untuk tugas pemrosesan data batch, throughput mungkin lebih penting daripada latensi. Untuk layanan online yang melayani permintaan pengguna, Anda mungkin perlu memprioritaskan latensi yang lebih rendah daripada throughput. Saat Anda merencanakan kapasitas untuk cluster Bigtable, pertimbangkan keseimbangan antara throughput dan latensi. Untuk informasi selengkapnya, lihat Merencanakan kapasitas Bigtable.

Mengikuti praktik terbaik desain skema

Tabel Anda dapat diskalakan hingga miliaran baris dan ribuan kolom, sehingga Anda dapat menyimpan data berukuran petabyte. Saat mendesain skema untuk tabel Bigtable Anda, pertimbangkan praktik terbaik desain skema.

Memantau performa dan melakukan penyesuaian

Pantau penggunaan CPU dan disk untuk instance Anda, analisis performa setiap cluster, dan tinjau rekomendasi ukuran yang ditampilkan dalam diagram pemantauan.

Spanner

Bagian ini memberikan rekomendasi untuk membantu Anda mengoptimalkan performa instance Spanner Anda.

Pilih kunci utama yang mencegah hotspot

Hotspot adalah server tunggal yang dipaksa untuk menangani banyak permintaan. Saat Anda memilih kunci utama untuk database, ikuti praktik terbaik desain skema untuk mencegah hotspot.

Ikuti praktik terbaik untuk coding SQL

Compiler SQL di Spanner mengonversi setiap pernyataan SQL deklaratif yang Anda tulis menjadi rencana eksekusi kueri imperatif. Spanner menggunakan rencana eksekusi untuk menjalankan pernyataan SQL. Saat membuat pernyataan SQL, ikuti praktik terbaik SQL untuk memastikan Spanner menggunakan rencana eksekusi yang menghasilkan performa yang optimal.

Menggunakan opsi kueri untuk mengelola pengoptimal kueri SQL

Spanner menggunakan pengoptimal kueri SQL untuk mengubah pernyataan SQL menjadi rencana eksekusi kueri yang efisien. Rencana eksekusi kueri yang dihasilkan pengoptimal mungkin sedikit berubah ketika pengoptimal kueri itu sendiri berkembang, atau ketika statistik database diperbarui. Anda dapat meminimalkan potensi regresi performa ketika pengoptimal kueri atau statistik database berubah dengan menggunakan opsi kueri.

Memvisualisasikan dan menyesuaikan struktur rencana eksekusi kueri

Untuk menganalisis masalah performa kueri, Anda dapat memvisualisasikan dan menyesuaikan struktur rencana eksekusi kueri menggunakan visualisasi paket kueri.

Menggunakan API operasi untuk mengelola operasi yang berjalan lama

Untuk panggilan metode tertentu, Spanner akan membuat operasi yang berjalan lama, yang mungkin memerlukan waktu lama untuk diselesaikan. Misalnya, saat Anda memulihkan database, Spanner akan membuat operasi yang berjalan lama untuk melacak progres pemulihan. Untuk membantu Anda memantau dan mengelola operasi yang berjalan lama, Spanner menyediakan API operasi. Untuk informasi selengkapnya, lihat Mengelola operasi yang berjalan lama.

Ikuti praktik terbaik untuk pemuatan massal

Spanner mendukung beberapa opsi untuk memuat data dalam jumlah besar secara massal. Performa operasi pemuatan massal bergantung pada faktor-faktor seperti partisi, jumlah permintaan tulis, dan ukuran setiap permintaan. Untuk memuat data dalam jumlah besar secara efisien, ikuti praktik terbaik pemuatan massal.

Memantau dan mengontrol pemakaian CPU

Pemakaian CPU instance Spanner dapat memengaruhi latensi permintaan. Server backend yang kelebihan beban dapat menyebabkan latensi permintaan yang lebih tinggi. Spanner memberikan metrik penggunaan CPU untuk membantu Anda menyelidiki penggunaan CPU yang tinggi. Untuk aplikasi yang sensitif terhadap performa, Anda mungkin perlu mengurangi pemakaian CPU dengan meningkatkan kapasitas komputasi.

Menganalisis dan mengatasi masalah latensi

Saat klien melakukan panggilan prosedur jarak jauh ke Spanner, permintaan API akan disiapkan terlebih dahulu oleh library klien. Kemudian, permintaan akan melewati Google Front End dan frontend Cloud Spanner API sebelum mencapai database Spanner. Untuk menganalisis dan mengatasi masalah latensi, Anda harus mengukur dan menganalisis latensi untuk setiap segmen jalur yang dilalui permintaan API. Untuk mengetahui informasi selengkapnya, lihat Panduan latensi menyeluruh Spanner.

Meluncurkan aplikasi setelah database mencapai status warm

Seiring dengan berkembangnya database Spanner, database ini membagi ruang kunci data Anda menjadi bagian. Setiap pemisahan adalah rentang baris yang berisi subset dari tabel Anda. Untuk menyeimbangkan keseluruhan beban pada database, Spanner secara dinamis memindahkan setiap bagian secara independen dan menetapkannya ke server yang berbeda. Jika bagian didistribusikan di beberapa server, database dianggap dalam status warm. Database yang hangat dapat memaksimalkan paralelisme dan memberikan peningkatan performa. Sebelum meluncurkan aplikasi, kami merekomendasikan Anda untuk memanaskan database dengan pemuatan data uji.

Langkah selanjutnya

Tinjau praktik terbaik untuk mengoptimalkan performa resource komputasi, penyimpanan, jaringan, dan analisis Anda: