MySQL-এ একাধিক ভ্যালু খুঁজতে OR চেইন করার পরিবর্তে IN() অপারেটর ব্যবহার করলে কোয়েরি দ্রুত হয়, কারণ MySQL অভ্যন্তরীণভাবে ইন্ডেক্স ব্যবহার করতে পারে।
টেবিল ও ডেটা
mysql> create table DemoTable1618 (
ClientId int NOT NULL AUTO_INCREMENT PRIMARY KEY,
ClientName varchar(20),
ClientEmailId varchar(30)
);
mysql> insert into DemoTable1618(ClientName,ClientEmailId) values
('Chris Brown','Brown323@gmail.com'),
('David Miller','MillerDavid@gmail.com'),
('John Doe','998John_Doe@gmail.com'),
('John Smith','999John_Smith@gmail.com'),
('Adam Smith','Adam_Smith@gmail.com');
IN() ব্যবহার করে ফাস্ট কোয়েরি
mysql> select * from DemoTable1618 where ClientEmailId IN('998John_Doe@gmail.com','999John_Smith@gmail.com','MillerDavid@gmail.com');
+----------+--------------+-------------------------+
| ClientId | ClientName | ClientEmailId |
+----------+--------------+-------------------------+
| 2 | David Miller | MillerDavid@gmail.com |
| 3 | John Doe | 998John_Doe@gmail.com |
| 4 | John Smith | 999John_Smith@gmail.com |
+----------+--------------+-------------------------+
কারণ দ্রুত হয়: IN() লিস্টকে সেট হিসেবে ট리트 করে এবং রেঞ্জ অপ্টিমাইজেশন/ইন্ডেক্স লুকআপ ব্যবহার করে। বড় লিস্টের জন্য IN() OR-এর চেয়ে দ্রুত। ClientEmailId-তে ইন্ডেক্স থাকলে আরও দ্রুত হবে।