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

MySQL-এ LIMIT অপারেটর দিয়ে নির্দিষ্ট সংখ্যক রো ফেচ করা

MySQL-এ একটি কোয়েরির ফলাফল থেকে নির্দিষ্ট সংখ্যক রো (N রো) ফেচ করতে LIMIT ক্লজ ব্যবহার করা হয়। এটি পেজিনেশন (pagination) এর জন্য অত্যন্ত গুরুত্বপূর্ণ।

সিনট্যাক্স

SELECT * FROM yourTableName LIMIT offset, count;
  • offset - কতটি রো বাদ দিয়ে শুরু করবে (০-ভিত্তিক)
  • count - কতটি রো ফেরত দেবে

টেবিল তৈরি এবং ১৩টি রেকর্ড ইনসার্ট

mysql> CREATE TABLE DemoTable (
    -> Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    -> Name VARCHAR(20)
    -> );
mysql> INSERT INTO DemoTable(Name) VALUES('John'),('Larry'),('Bob'),('Sam'),('Mike'),
    -> ('David'),('Carol'),('Ramit'),('Adam'),('Chris'),('Robert'),('James'),('Jace');

সব রেকর্ড দেখুন

mysql> SELECT * FROM DemoTable;
+----+--------+
| Id | Name   |
+----+--------+
|  1 | John   |
|  2 | Larry  |
|  3 | Bob    |
|  4 | Sam    |
|  5 | Mike   |
|  6 | David  |
|  7 | Carol  |
|  8 | Ramit  |
|  9 | Adam   |
| 10 | Chris  |
| 11 | Robert |
| 12 | James  |
| 13 | Jace   |
+----+--------+

প্রথম ১০টি রো ফেচ করা (LIMIT 0, 10)

mysql> SELECT * FROM DemoTable LIMIT 0, 10;
+----+-------+
| Id | Name  |
+----+-------+
|  1 | John  |
|  2 | Larry |
|  3 | Bob   |
|  4 | Sam   |
|  5 | Mike  |
|  6 | David |
|  7 | Carol |
|  8 | Ramit |
|  9 | Adam  |
| 10 | Chris |
+----+-------+

পেজিনেশন উদাহরণ

  • পেজ ১ (রো ১-১০): LIMIT 0, 10 বা LIMIT 10
  • পেজ ২ (রো ১১-২০): LIMIT 10, 10
  • পেজ ৩ (রো ২১-৩০): LIMIT 20, 10

সিনট্যাক্স ভেরিয়েশন:

  • LIMIT 10 - প্রথম ১০টি (offset=0 ইম্প্লিসিট)
  • LIMIT 10 OFFSET 5 - ৬ম থেকে ১৫ম রো (MySQL 8.0+)

পারফরম্যান্স টিপস: বড় অফসেটে (যেমন LIMIT 100000, 10) কোয়েরি ধীর হয়। সেক্ষেত্রে WHERE id > last_seen_id LIMIT 10 পদ্ধতি দ্রুত।

  1. MySQL-এ মিলিসেকেন্ড সহ সময় সংরক্ষণ করা

  2. MySQL-এ কুয়েরি এক্সিকিউশন টাইম মাপা (Profiling)

  3. MySQL-এ বর্তমান তারিখ/সময় ইনসার্ট করা

  4. MySQL-এ শেষ ১০টি সারি কীভাবে বের করবেন?