Menala Pemalar Kos Perancang Pertanyaan
Pelajari cara pemalar kos perancang seperti random_page_cost dan effective_cache_size membentuk pilihan pelan, serta cara melarasnya agar sepadan dengan perkakasan dan data anda.
Menala Pemalar Kos Perancang Pertanyaan ialah pelajaran Prestasi PostgreSQL & Pengoptimuman Pertanyaan percuma di CoddyKit. Ini ialah pelajaran 4 daripada 4. Sebanyak 3 pelajaran dalam laluan pembelajaran ini boleh dibaca sepenuhnya secara percuma — selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan praktikal dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Prestasi PostgreSQL & Pengoptimuman Pertanyaan, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Prestasi PostgreSQL & Pengoptimuman Pertanyaan merangkumi sejumlah 4 pelajaran.
Perancang Memerlukan Petunjuk tentang Perkakasan
Perancang menganggarkan kos setiap pelan menggunakan pemalar yang memodelkan perkakasan Anda. Jika pemalar tersebut tidak sepadan dengan keadaan sebenar, perancang mungkin memilih imbasan berjujukan sedangkan imbasan indeks jauh lebih pantas, atau sebaliknya.
seq_page_cost berbanding random_page_cost
Dua pemalar utama:
seq_page_cost(lalai 1.0): kos membaca halaman secara berjujukanrandom_page_cost(lalai 4.0): kos membaca halaman secara rawak
Nisbah 4:1 mengandaikan cakera berputar yang bacaan rawaknya perlahan.
Pelarasan untuk SSD
Pada SSD, bacaan rawak hampir semurah bacaan berjujukan. Mengurangkan random_page_cost membuatkan perancang memilih imbasan indeks dengan sewajarnya.
SET random_page_cost = 1.1;effective_cache_size
Ini memberitahu perancang jumlah memori yang berkemungkinan digunakan oleh OS dan PostgreSQL bersama-sama untuk menyimpan data dalam cache. Ia tidak memperuntukkan memori — hanya mempengaruhi anggaran kos bagi imbasan indeks.
SET effective_cache_size = '12GB';Mengapa effective_cache_size Penting
Nilai yang besar memberitahu perancang bahawa carian indeks berulang berkemungkinan menggunakan cache, menjadikan imbasan indeks kelihatan lebih murah dan lebih menarik untuk jadual besar. Tetapkannya kira-kira pada 50-75% daripada jumlah RAM.
Pemalar Kos CPU
Pemalar yang lebih terperinci menimbang kerja CPU:
cpu_tuple_cost: pemprosesan bagi setiap bariscpu_index_tuple_cost: bagi setiap entri indekscpu_operator_cost: bagi setiap panggilan operator/fungsi
Pemalar ini jarang diubah tetapi penting untuk ungkapan yang berat CPU.
Menguji Perubahan pada Peringkat Sesi
Uji pemalar dengan SET dalam sesi Anda sebelum menjadikannya kekal. Bandingkan pelan dengan EXPLAIN.
SET random_page_cost = 1.1;
EXPLAIN SELECT * FROM orders WHERE customer_id = 42;Menjadikannya Kekal
Setelah berpuas hati, tetapkan nilai tersebut pada seluruh kluster dan muat semula, atau sunting postgresql.conf.
ALTER SYSTEM SET random_page_cost = 1.1;
SELECT pg_reload_conf();Berwaspada terhadap Pelarasan Berlebihan
Jangan mengejar satu pertanyaan perlahan dengan memesongkan pemalar secara global — Anda mungkin merosakkan ribuan pelan lain. Baiki punca sebenar (indeks tiada, statistik lapuk) dahulu; laraskan pemalar hanya untuk ketidakpadanan perkakasan yang sebenar.
Pelarasan Mengikut Ruang Jadual
Jika sebahagian data berada pada SSD dan sebahagian lagi pada HDD, Anda boleh menetapkan random_page_cost bagi setiap ruang jadual supaya perancang menilai setiap medium storan dengan tepat.
ALTER TABLESPACE fast_ssd
SET (random_page_cost = 1.1);Mengesahkan Kesan
Selepas mengubah pemalar, pastikan perancang benar-benar menukar pelan. Jalankan EXPLAIN sebelum dan selepas perubahan, kemudian cari perubahan daripada Imbasan Berjujukan kepada Imbasan Indeks (atau sebaliknya).
EXPLAIN SELECT * FROM orders WHERE customer_id = 42;
SET random_page_cost = 1.1;
EXPLAIN SELECT * FROM orders WHERE customer_id = 42;Semakan Pantas
Uji pengetahuan Anda tentang pelarasan perancang.
Ringkasan
Anda telah mempelajari pelarasan kos perancang:
- Pemalar kos memodelkan perkakasan Anda untuk perancang
- Rendahkan
random_page_costpada SSD untuk mengutamakan imbasan indeks - Tetapkan
effective_cache_sizekepada kira-kira 50-75% daripada RAM - Uji dengan
SETdan EXPLAIN sebelumALTER SYSTEM - Baiki indeks/statistik sebelum memesongkan pemalar secara global
Pelajari SQL dengan tutor kecerdasan buatan — percuma
Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.
- Kursus
- 22
- Pelajaran
- 88
Soalan Lazim
Adakah pelajaran “Menala Pemalar Kos Perancang Pertanyaan” percuma?
Ya — sebanyak 3 pelajaran dalam laluan pembelajaran Prestasi PostgreSQL & Pengoptimuman Pertanyaan, termasuk “Menala Pemalar Kos Perancang Pertanyaan”, boleh dibaca sepenuhnya secara percuma di web ini. Selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan interaktif dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Kursus Prestasi PostgreSQL & Pengoptimuman Pertanyaan merangkumi sejumlah 4 pelajaran.
Apakah yang akan saya pelajari dalam “Menala Pemalar Kos Perancang Pertanyaan”?
Pelajari cara pemalar kos perancang seperti random_page_cost dan effective_cache_size membentuk pilihan pelan, serta cara melarasnya agar sepadan dengan perkakasan dan data anda. Anda berlatih Prestasi PostgreSQL & Pengoptimuman Pertanyaan menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.
Adakah saya memerlukan pengalaman untuk memulakan Prestasi PostgreSQL & Pengoptimuman Pertanyaan?
Tiada pengalaman terdahulu diperlukan. Pembelajaran Prestasi PostgreSQL & Pengoptimuman Pertanyaan di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 4 daripada 4.
Berapa lamakah pelajaran “Menala Pemalar Kos Perancang Pertanyaan” diambil?
Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.
Bolehkah saya menulis dan menjalankan kod dalam pelajaran Prestasi PostgreSQL & Pengoptimuman Pertanyaan ini?
Ya. Setiap pelajaran Prestasi PostgreSQL & Pengoptimuman Pertanyaan menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.
Semua pelajaran dalam kursus ini
- Parameter Utama postgresql.conf
- Penalaan Memori (shared_buffers, work_mem)
- Penalaan I/O Cakera dan Titik Semak
- Menala Pemalar Kos Perancang Pertanyaan