কম্পিউটার টিউটোরিয়াল

MySQL INSERT দ্রুত করার উপায়: ট্রানজ্যাকশন ও ব্যাচ ইনসার্ট


বাল্ক ইনসার্টের জন্য ট্রানজ্যাকশন ব্যবহার

অনেক রো একসাথে ইনসার্ট করলে প্রতিটি ইনসার্টের জন্য আলাদা কমিট হতে পারে, যা ধীর করে দেয়। START TRANSACTION ... COMMIT দিয়ে সব ইনসার্ট একসাথে কমিট করুন।

সিনট্যাক্স

START TRANSACTION;
INSERT INTO table (col1, col2) VALUES (v1, v2), (v3, v4), ...;
COMMIT;

উদাহরণ

টেবিল তৈরি

mysql> create table insertDemo (
    -> StudentId int NOT NULL AUTO_INCREMENT PRIMARY KEY,
    -> StudentName varchar(20),
    -> StudentAge int
    -> );
Query OK, 0 rows affected (0.72 sec)

ট্রানজ্যাকশনে বাল্ক ইনসার্ট

mysql> START TRANSACTION;
Query OK, 0 rows affected (0.00 sec)

mysql> INSERT INTO insertDemo(StudentName, StudentAge) VALUES
    -> ('John', 21), ('Carol', 22), ('Bob', 21), ('David', 24),
    -> ('Maxwell', 25), ('Mike', 22);
Query OK, 6 rows affected (0.00 sec)
Records: 6  Duplicates: 0  Warnings: 0

mysql> COMMIT;
Query OK, 0 rows affected (0.14 sec)

ডেটা যাচাই

mysql> SELECT * FROM insertDemo;

আউটপুট

+-----------+-------------+------------+
| StudentId | StudentName | StudentAge |
+-----------+-------------+------------+
|         1 | John        |         21 |
|         2 | Carol       |         22 |
|         3 | Bob         |         21 |
|         4 | David       |         24 |
|         5 | Maxwell     |         25 |
|         6 | Mike        |         22 |
+-----------+-------------+------------+

অতিরিক্ত টিপস দ্রুত ইনসার্টের জন্য:

  • LOAD DATA INFILE — CSV থেকে সরাসরি লোড (সবচেয়ে দ্রুত)
  • ইন্ডেক্স আপডেট বন্ধ রাখুন: ALTER TABLE ... DISABLE KEYS (MyISAM) / ইনসার্টের পর ENABLE KEYS
  • innodb_flush_log_at_trx_commit = 2 সেট করুন (ডেটা লস রিস্ক থাকে)
  • ব্যাচ সাইজ অপ্টিমাইজ করুন (১০০০-৫০০০ রো প্রতি ব্যাচ)
  1. MySQL-এ SUBSTRING_INDEX() ব্যবহার করে কলাম বিভক্ত করা (স্প্লিট)

  2. MySQL에서 VIEW(뷰) 생성하고 조회하기

  3. Java থেকে MySQL-এ কানেক্ট করার পদ্ধতি (JDBC)

  4. MySQL-এ JOIN ব্যবহার করে দুটি টেবিলের রেজাল্ট মার্জ করা