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

MySQL-এ IN() অপারেটর ব্যবহার করে একাধিক SELECT একত্রিত করে অপটিমাইজ করা


বারবার SELECT না করে IN() ব্যবহার করে একক কোয়ারিতে অপটিমাইজেশন

একই টেবিলে একই কলামের জন্য বারবার আলাদা আলাদা SELECT চালানোর বদলে, একক SELECT তে IN() অপারেটর ব্যবহার করে একাধিক মান ফিল্টার করা পারফরম্যান্সের দৃষ্টিতে উন্নত।

উদাহরণ

টেবিল তৈরি:

CREATE TABLE DemoTable (Id INT, Name VARCHAR(100), Age INT);
INSERT INTO DemoTable VALUES 
(1, 'Chris', 23), (2, 'David', 21), (3, 'Mike', 24), (4, 'Robert', 22);

অপটিমাইজড কোয়ারি

বারবার SELECT Name FROM DemoTable WHERE Age = 21 ইত্যাদি না করে:

SELECT Name FROM DemoTable WHERE Age IN (21, 22, 23);

আউটপুট:

+--------+
| Name   |
+--------+
| Chris  |
| David  |
| Robert |
+--------+

লাভ

  • নেটওয়ার্ক রাউন্ড-ট্রিপ কম হয় (একটি কোয়ারি বনাম একাধিক)।
  • পার্সিং এবং অপটিমাইজেশন একবারই হয়।
  • ইন্ডেক্স রেঞ্জ স্ক্যান সম্ভব (যদি Age-এ ইন্ডেক্স থাকে)।

সতর্কতা

  • IN() তালিকা খুব বড় হলে (হাজার হাজার মান) পারফরম্যান্স কমে যেতে পারে। সেক্ষেত্রে টেম্পোরারি টেবিল বা JOIN ভালো।
  • NULL মান IN()-এ মেলে না (NULL == NULL false)।
  1. MySQL ডাটাবেসে একটি টেবিলের ব্যাকআপ নেওয়ার পদ্ধতি

  2. Java-MySQL 연동: 단일 컬럼만 INSERT하기

  3. MySQL-এ টেবিলের অস্তিত্ব যাচাই করা

  4. MySQL-এ IS NULL ব্যবহার করে সিঙ্গেল রোতে NULL ভ্যালু চেক করা