আপনি যদি PostgreSQL 9.5+ ব্যবহার করেন তবে আপনি TABLESAMPLE
এলোমেলো রেকর্ড নির্বাচন করতে সুবিধা নিতে পারেন ।
দুটি ডিফল্ট নমুনা পদ্ধতি ( SYSTEM
এবং BERNOULLI
) আপনার সারণীতে মোট সারিগুলির সংখ্যার শতাংশ হিসাবে ফিরে আসার জন্য সারিগুলির সংখ্যা নির্দিষ্ট করে require
-- Fetch 10% of the rows in the customers table.
SELECT * FROM customers TABLESAMPLE BERNOULLI(10);
এর জন্য উপযুক্ত শতাংশ বাছাই করতে সারণীতে রেকর্ডের পরিমাণ জেনে রাখা দরকার, এটি দ্রুত খুঁজে পাওয়া সহজ নাও হতে পারে। ভাগ্যক্রমে, এমন একটি tsm_system_rows
মডিউল রয়েছে যা আপনাকে সরাসরি ফিরতে সারিগুলির সংখ্যা নির্দিষ্ট করতে দেয়।
CREATE EXTENSION tsm_system_rows;
-- Fetch a single row from the customers table.
SELECT * FROM customers TABLESAMPLE SYSTEM_ROWS(1);
অ্যাক্টিভেকর্ডের মধ্যে এটি ব্যবহার করতে, প্রথমে মাইগ্রেশনের মধ্যে এক্সটেনশন সক্ষম করুন:
class EnableTsmSystemRowsExtension < ActiveRecord::Migration[5.0]
def change
enable_extension "tsm_system_rows"
end
end
তারপরে from
কোয়েরির ধারাটি সংশোধন করুন :
customer = Customer.from("customers TABLESAMPLE SYSTEM_ROWS(1)").first
আমি জানি না যে SYSTEM_ROWS
স্যাম্পলিংয়ের পদ্ধতিটি পুরোপুরি এলোমেলো হবে বা এটি কেবল এলোমেলো পৃষ্ঠা থেকে প্রথম সারিতে ফিরে আসে কিনা।
এই তথ্যগুলির বেশিরভাগই গুলসিন ইল্ডিরিমের লেখা ২ য় কুইক্রেড ব্লগ পোস্ট থেকে নেওয়া হয়েছিল ।