উত্তর:
সরকারী উইকি পেজ যে উত্তর দিতে:
[...] এটি ধীর হওয়ার কারণ পোস্টগ্র্রেএসকিউএল এর এমভিসিসি বাস্তবায়নের সাথে সম্পর্কিত। একাধিক লেনদেনের মাধ্যমে ডেটার বিভিন্ন রাজ্য দেখতে পাওয়া যায় তার অর্থ এই যে পুরো "টেবিল জুড়ে ডেটা সংক্ষিপ্ত করার জন্য" COUNT (*) "এর পক্ষে সরল কোনও উপায় নেই; পোস্টগ্রিএসকিউএল অবশ্যই সমস্ত সারি দিয়ে যেতে হবে, কিছুটা অর্থে। এটি সাধারণত টেবিলের প্রতিটি সারি সম্পর্কে ক্রমিক স্ক্যান পড়ার তথ্যগুলিতে ফলাফল দেয়। [...]
তদতিরিক্ত, আপনি ক্যোয়ার পরিকল্পনাকারীর জন্য তথ্য পুনর্নির্মাণের জন্য একটি বিশ্লেষণ চেষ্টা করতে পারেন ।
আপনার ব্যবহার করে আরও ভাল পারফরম্যান্স পাওয়া উচিত COUNT(an uniquly indexed field)
তবে এটি যদি খুব বড় হয় তবে এটি করার একমাত্র উপায় একটি সিক স্ক্যান।
আপনার যদি খুব দ্রুত সংখ্যার প্রয়োজন হয় এবং স্কিমা অনুসন্ধানে ভয় না পান তবে আপনি নিম্নলিখিতটি করতে পারেন
SELECT reltuples FROM pg_class WHERE oid = 'your_table'::regclass
তবে এই মানগুলির উপর নির্ভর করবেন না কারণ এটি কেবলমাত্র একটি "আনুমানিক" (যদিও প্রায়শই সঠিক) সারণীতে টিপলগুলির সংখ্যা।
EXPLAIN SELECT * from your_table;
। এটি কোয়েরি কার্যকর করবে না। আউটপুটটিতে rows=…
সারিগুলির আনুমানিক সংখ্যা সহ অন্তর্ভুক্ত ।
COUNT(pk)
পারফরম্যান্স উন্নতি হবে। আমি মনে করি এটি সর্বদা একটি সিক-স্ক্যান করবে