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

Mengapa PostgreSQL melakukan pemindaian berurutan pada kolom yang diindeks?

Jika SELECT mengembalikan lebih dari sekitar 5-10% dari semua baris dalam tabel, pemindaian berurutan jauh lebih cepat daripada pemindaian indeks.

Ini karena pemindaian indeks memerlukan beberapa Operasi IO untuk setiap baris (lihat baris di indeks, lalu ambil baris dari heap). Sedangkan pemindaian sekuensial hanya membutuhkan satu IO untuk setiap baris - atau bahkan lebih sedikit karena satu blok (halaman) pada disk berisi lebih dari satu baris, sehingga lebih dari satu baris dapat diambil dengan satu operasi IO.

Btw:ini juga berlaku untuk DBMS lain - beberapa pengoptimalan seperti "pemindaian indeks saja" dikesampingkan (tetapi untuk SELECT * sangat tidak mungkin DBMS seperti itu akan menggunakan "pemindaian indeks saja")



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Skema Django dan postgresql

  2. Memesan hasil model bersarang yang penuh semangat di Node Sequelize

  3. Bagaimana cara mengembalikan hasil SELECT di dalam suatu fungsi di PostgreSQL?

  4. Tidak dapat terhubung ke database heroku postgresql dari aplikasi node lokal dengan sekuel

  5. RPAD() Fungsi di PostgreSQL