PostgreSQL এ ডেটা দ্রুত ইনসার্ট করার জন্য Bulk Insert এবং COPY Command দুটি গুরুত্বপূর্ণ পদ্ধতি রয়েছে। এগুলি সাধারণ INSERT কমান্ডের তুলনায় অনেক দ্রুত এবং বৃহৎ ডেটাসেট একসাথে ইনসার্ট করার জন্য ব্যবহৃত হয়।
1. Bulk Insert
Bulk Insert একসাথে একাধিক রেকর্ড ডেটাবেসে ইনসার্ট করার পদ্ধতি। এটি সাধারণত একটি INSERT INTO কুয়েরির মধ্যে একাধিক ভ্যালু প্রদান করে ডেটা ইনসার্ট করার জন্য ব্যবহৃত হয়। সাধারণত, একাধিক INSERT কুয়েরি পাঠানোর চেয়ে এটি অনেক দ্রুত।
Bulk Insert এর উদাহরণ:
INSERT INTO users (name, email)
VALUES
('John Doe', 'john@example.com'),
('Jane Doe', 'jane@example.com'),
('Jim Beam', 'jim@example.com'),
('Jack Daniels', 'jack@example.com');
এখানে একবারে একাধিক রেকর্ড ইনসার্ট করা হচ্ছে, যা একাধিক INSERT কুয়েরির তুলনায় অনেক দ্রুত হয়।
সুবিধা:
- এটি একটি সাধারণ SQL কুয়েরি হওয়ায়, ব্যবহার করা সহজ।
- ছোট বা মাঝারি আকারের ডেটা ইনসার্ট করার জন্য কার্যকর।
সীমাবদ্ধতা:
- খুব বড় আকারের ডেটা ইনসার্ট করলে পারফরম্যান্সে সমস্যা হতে পারে।
2. COPY Command
COPY কমান্ড PostgreSQL এর মধ্যে এক্সপোর্ট এবং ইনপোর্ট করার জন্য ব্যবহৃত হয়, এবং এটি বিশেষভাবে বড় আকারের ডেটা ইনসার্ট করার জন্য অত্যন্ত দ্রুত। এই কমান্ডটি একবারে একটি ফাইল থেকে ডেটা ইনপোর্ট বা এক্সপোর্ট করতে ব্যবহৃত হয়।
COPY Command এর ব্যবহার:
a. ফাইল থেকে ডেটা ইনসার্ট করা
COPY কমান্ডের মাধ্যমে একটি CSV বা টেক্সট ফাইল থেকে ডেটা ইনসার্ট করা যায়।
COPY users (name, email)
FROM '/path/to/data.csv'
WITH (FORMAT csv, HEADER true);
এখানে /path/to/data.csv ফাইলটি ব্যবহার করে users টেবিলে ডেটা ইনসার্ট করা হবে। WITH অপশনটি ইনপুট ফাইলের ফরম্যাট এবং অন্যান্য বৈশিষ্ট্য কনফিগার করতে ব্যবহৃত হয়।
- FORMAT csv: CSV ফরম্যাটে ডেটা ইনপোর্ট।
- HEADER true: প্রথম লাইনটি হেডার হিসেবে ধরা হবে এবং ডেটা ইনপোর্ট শুরু হবে দ্বিতীয় লাইন থেকে।
b. STDIN থেকে ডেটা ইনপোর্ট
আপনি PostgreSQL এর psql টুল ব্যবহার করে স্ট্যান্ডার্ড ইনপুট (STDIN) থেকেও ডেটা ইনপোর্ট করতে পারেন।
psql -h localhost -U postgres -d my_database -c "\COPY users (name, email) FROM stdin"
John Doe john@example.com
Jane Doe jane@example.com
Jim Beam jim@example.com
\.
এখানে \COPY কমান্ডটি পছন্দসই ডেটাবেসে ডেটা ইনপোর্ট করতে ব্যবহার করা হয়েছে এবং STDIN থেকে ডেটা পাঠানো হয়েছে।
সুবিধা:
- COPY অনেক দ্রুত কাজ করে কারণ এটি ব্যাচে ডেটা ইনসার্ট করতে সক্ষম।
- এটি বড় আকারের ডেটা ইনসার্টের জন্য সবচেয়ে দ্রুত পদ্ধতি।
COPYকমান্ড ফাইলের মধ্যে ডেটা সঞ্চিত থাকতে সাহায্য করে, যা খুব দ্রুত এবং কার্যকরী।
সীমাবদ্ধতা:
- ফাইল সিস্টেমে ফাইল অ্যাক্সেসের অনুমতি প্রয়োজন।
- এটি SQL কুয়েরির মতো ডাইনামিক নয়; এটি নির্দিষ্ট ফাইলের সাথে কাজ করে।
Bulk Insert এবং COPY Command এর মধ্যে পার্থক্য
| বৈশিষ্ট্য | Bulk Insert | COPY Command |
|---|---|---|
| ব্যবহার | SQL কুয়েরি ফরম্যাটে একাধিক রেকর্ড ইনসার্ট | ফাইল বা স্ট্যান্ডার্ড ইনপুট থেকে ডেটা ইনসার্ট |
| পারফরম্যান্স | মাঝারি আকারের ডেটার জন্য ভাল | বড় ডেটাসেট ইনসার্ট করার জন্য সবচেয়ে দ্রুত |
| ডেটা সোর্স | SQL কুয়েরি | CSV, টেক্সট ফাইল, বা স্ট্যান্ডার্ড ইনপুট |
| ফাইলের প্রয়োজন | নয় | হ্যাঁ |
| ব্যবহারকারী সহজতা | সাধারণ SQL কুয়েরি, সহজ ব্যবহার | ফাইল ম্যানিপুলেশন এবং বিশেষ অনুমতি প্রয়োজন |
| সীমাবদ্ধতা | খুব বড় ডেটা সেটের জন্য সমস্যা হতে পারে | ফাইল এবং ফাইল পারমিশনের উপর নির্ভরশীল |
সারাংশ
- Bulk Insert একটি সহজ এবং দ্রুত পদ্ধতি, যা SQL কুয়েরি ব্যবহার করে একাধিক রেকর্ড ইনসার্ট করার জন্য ব্যবহৃত হয়, তবে এটি বড় ডেটাসেটের জন্য উপযুক্ত নয়।
- COPY Command বিশেষভাবে বড় ডেটাসেট ইনসার্ট করার জন্য তৈরি, এবং এটি ফাইল সিস্টেম থেকে ডেটা ইনপোর্ট করার জন্য সবচেয়ে কার্যকরী এবং দ্রুত পদ্ধতি।
Read more