PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Rencana Kueri postgres dengan indeks

Rencana ini:

Index Scan using Designation_place_name on myTable  (cost=0.00..67701.36 rows=22043 width=27) (actual time=0.061..3.796 rows=3376 loops=1)
   Index Cond: ((relation)::text = 'Manager'::text)
   Filter: (timeOfJoining > '1930-10-10 00:00:00+05:53:20'::timestamp with time zone)
 Total runtime: 4.082 ms
(4 rows)

Pada dasarnya berarti:

  1. Menggunakan indeks Designation_place_name
  2. Temukan baris yang sesuai dengan indeks kondisi relasi ='Manager'
  3. Simpan hanya baris yang cocok dengan kriteria timeOfJoining

Selama langkah 2, halaman disk diakses "secara acak", bukan secara berurutan, artinya indeks berisi alamat baris yang cocok pada disk, dan Postgres mengunjungi alamat ini dalam urutan yang ditunjukkan oleh indeks. (Ini bisa mahal, btw. Terkadang, perencana akan memutuskan lebih murah untuk hanya membaca seluruh tabel (scan seq) atau mengambil semua baris secara batch pada halaman sambil mengabaikan urutan yang ditunjukkan oleh indeks (scan indeks bitmap).)

Catatan:tidak ada (tabel) yang bergabung dalam kueri itu. Seandainya ada satu, Anda akan melihat tingkat lekukan ekstra. Baca dari yang paling menjorok ke paling sedikit menjorok.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mengumumkan repmgr 2.0

  2. PostgreSQL DATEADD() Setara

  3. Bisakah banyak utas menyebabkan pembaruan duplikat pada set terbatas?

  4. Permintaan postgresql dalam 10 detik

  5. Menggarisbawahi atau camelCase di pengidentifikasi PostgreSQL, ketika bahasa pemrograman menggunakan camelCase?