MySQL-এ একক INSERT স্টেটমেন্টে VALUES() কমা-সেপারেটেড ব্যবহার করে ব্যাচ ইনসার্ট
একাধিক রেকর্ড একসাথে দ্রুত ইনসার্ট করতে (Batch Insert) VALUES ক্লজে প্রতিটি রোয়ের মান প্যারেনথেসিসে দিয়ে কমা দিয়ে আলাদা করা হয়। এটি আলাদা আলাদা INSERT কমান্ড চালানোর চেয়ে অনেক দ্রুত এবং অ্যাটমিক।
সিনট্যাক্স
INSERT INTO yourTableName (col1, col2, ...) VALUES (val1, val2, ...), (val1, val2, ...), ..., (val1, val2, ...);
উদাহরণ
টেবিল তৈরি
mysql> CREATE TABLE addMultipleValues (Counter INT NOT NULL);
ব্যাচ ইনসার্ট (১ থেকে ১০)
mysql> INSERT INTO addMultipleValues VALUES (1), (2), (3), (4), (5), (6), (7), (8), (9), (10); Query OK, 10 rows affected (0.27 sec) Records: 10 Duplicates: 0 Warnings: 0
ফলাফল যাচাই
mysql> SELECT * FROM addMultipleValues;
+---------+ | Counter | +---------+ | 1 | | 2 | | 3 | | 4 | | 5 | | 6 | | 7 | | 8 | | 9 | | 10 | +---------+
সুবিধা:
- নেটওয়ার্ক রাউন্ড-ট্রিপ কম (১ কোয়েরি)
- ট্রানজ্যাকশন লগ একবার লিখা হয়
- বাল্ক লোডিং-এ খুব দ্রুত
LOAD DATA INFILEআরও দ্রুত বড় ডেটাসেটের জন্য
সীমাবদ্ধতা: max_allowed_packet সাইজের অধিক বড় কোয়েরি হলে স্প্লিট করতে হয়।