Postgres Jelaskan Kos

Postgres Jelaskan Kos



Postgres ialah sistem pangkalan data hubungan sumber terbuka yang berkuasa dan digunakan secara meluas dengan reputasi yang kukuh untuk keteguhan, fungsi dan prestasinya.

Salah satu alat yang menjadikan Postgres lebih kuat dalam prestasi ialah perintah EXPLAIN yang memberikan butiran tentang pelan pelaksanaan pertanyaan SQL.

Apakah Perintah EXPLAIN?

Perintah EXPLAIN memaparkan pelan pelaksanaan yang dijana oleh perancang PostgreSQL untuk pernyataan SQL yang diberikan.







Ini termasuk maklumat tentang anggaran kos melaksanakan setiap langkah pertanyaan. Dengan meneliti kos ini, kita boleh memahami sebab pertanyaan berjalan perlahan dan cara mengoptimumkannya.



PostgreSQL Terangkan Kos

Kami terutamanya menggunakan perintah EXPLAIN untuk mengambil maklumat tentang pertanyaan yang diberikan. Perintah mengeluarkan beberapa maklumat tentang pertanyaan.



Ambil contoh pertanyaan yang ditunjukkan dalam perkara berikut:





PILIH f.tajuk, c.nama
DARI filem f
SERTAI kategori_filem fc HIDUP f.id_filem = fc.id_filem
SERTAI kategori c PADA fc.category_id = c.category_id;

Jika kita menjalankan perintah explain pada join mudah sebelumnya:

JELASKAN PILIH f.tajuk, c.nama
DARI filem f
SERTAI kategori_filem fc HIDUP f.id_filem = fc.id_filem
SERTAI kategori c PADA fc.category_id = c.category_id;

Kita harus mendapatkan output seperti yang ditunjukkan dalam berikut:



Anda mungkin perasan bahawa untuk setiap langkah pertanyaan, PostgreSQL mengembalikan anggaran kos pertanyaan itu.

  1. startup_cost – Ia menunjukkan anggaran kos untuk memulakan operasi sebelum ia boleh mula mengeluarkan baris.
  2. total_cost – Jumlah kos untuk mendapatkan semula semua baris.
  3. Baris – Ia menentukan anggaran bilangan baris yang dikembalikan oleh pertanyaan.
  4. Lebar - Ini menentukan bilangan purata bait semua baris yang dikembalikan oleh operasi.

Kos pertanyaan dalam PostgreSQL dilambangkan dalam unit sewenang-wenangnya yang ditentukan oleh parameter kos yang ditetapkan dalam konfigurasi pelayan.

Kunci parameter ini ialah seq_page_cost yang menetapkan kos pengambilan halaman cakera yang tiada dalam cache.

Jika anda menggunakan pgAdmin, anda boleh menggunakan ciri 'jelaskan analisis' untuk mendapatkan gambar rajah yang lebih mudah dibaca dan dibentangkan dengan baik untuk arahan terangkan. Sebagai contoh:

Anda kemudian boleh mengklik pada setiap langkah untuk melihat statistik dan anggaran kos.

Mengoptimumkan Pertanyaan Berdasarkan Kos

Apabila mengoptimumkan pertanyaan anda, adalah penting untuk memahami bahawa kos yang lebih rendah biasanya bermakna pelaksanaan yang lebih pantas. Oleh itu, anda boleh mengubah suai pertanyaan anda untuk kos yang lebih rendah.
Berikut adalah beberapa faktor yang perlu dipertimbangkan:

Gunakan Indeks jadual – Indeks dengan ketara mengurangkan kos pertanyaan berasaskan carian dengan mengekalkan struktur data yang membolehkan carian lebih pantas.

Gunakan Fungsi dan Operator dengan bijak – Anggaran kos untuk fungsi dan pengendali tidak selalu tepat, kerana kos sebenar boleh bergantung pada data tertentu. Oleh itu, hadkan penggunaan fungsi dan operator kompleks kepada minimum.

Kesimpulan

Kami meneroka konsep kos dalam arahan PostgreSQL ANALYZE. Kami membincangkan maksud output arahan dan cara menggunakan output kos untuk menganalisis cara paling cekap untuk menjalankan pertanyaan yang diberikan.