PostgreSQL – Bir tablodaki kayıt sayısını bulmanın hızlı yolu

Bir tabloda 5000 veya 500000 veya 5000000000 kayıt varsa ve gereksinim tablonun toplam satır sayısını bulmaksa, Veritabanı Geliştiricisi çoğu satır sayısını almak için COUNT (*) değerini her zaman çalıştırır. Fakat değerler yükseldikçe sorgu sonucunun dönmesi geç cevap vermekte. Ekip üyelerimizin çoğunun COUNT (*) çalıştırdığını ve bunu  5000000000 satır içeren bir tabloda yaptığını hayal edin. Gelme süresi çok çok uzun olacaktır. Aynı zamanda yüksek I/O ve CPU tüketimine sebebiyet verecektir.

Belirli bir süre için tam satır sayısı gerekiyorsa, COUNT (*) zorunludur.
Fakat sayımın kesin olması gerekmiyorsa, bunu çarpıcı bir şekilde hızlandırabilirsiniz.
Satır sayısını bulmak için meta satır tablosunu veya istatistiksel tabloyu kullanabilirsiniz; bu, gerçek satır sayımı ile tamamen aynıdır.

Çünkü MVCC’nin doğası, bazen gerçek kayıt sayısı ve istatistiksel tablonun kayıt sayısı arasındaki farkı bulabilirsin.

Yöntem 1 :

SELECT reltuples::bigint AS EstimatedCount
FROM   pg_class
WHERE  oid = 'public.TableName'::regclass;

Yöntem 2 :

SELECT 
  schemaname
  ,relname
  ,n_live_tup AS EstimatedCount 
FROM pg_stat_user_tables 
ORDER BY n_live_tup DESC;

Kolay Gelsin.

Leave a Reply

Your email address will not be published. Required fields are marked *