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

MySQL-এ STRAIGHT_JOIN ব্যবহার

STRAIGHT_JOIN সাধারণ INNER JOIN-এর মতোই কাজ করে, কিন্তু টেবিল জয়েনের অর্ডার বাধ্য করে (লेफট টেবিল প্রথমে পড়া হয়)। অপ্টিমাইজার জয়েন অর্ডার পরিবর্তন করতে পারে না।

দুটি টেবিল ও রিলেশন

mysql> CREATE TABLE ForeignTableDemo (Id INT, Name VARCHAR(100), FK INT);
mysql> CREATE TABLE PrimaryTableDemo (FK INT, Address VARCHAR(100), PRIMARY KEY(FK));
mysql> ALTER TABLE ForeignTableDemo ADD CONSTRAINT FKConst FOREIGN KEY(FK) REFERENCES PrimaryTableDemo(FK);

ডেটা ইনসার্ট

mysql> INSERT INTO PrimaryTableDemo VALUES(1,'US'),(2,'UK'),(3,'Unknown');
mysql> INSERT INTO ForeignTableDemo VALUES(1,'John',1),(2,'Bob',2);

STRAIGHT_JOIN কুয়েরি

mysql> SELECT ForeignTableDemo.Id, ForeignTableDemo.Name, PrimaryTableDemo.Address
-> FROM ForeignTableDemo
-> STRAIGHT_JOIN PrimaryTableDemo
-> ON ForeignTableDemo.FK = PrimaryTableDemo.FK;
+------+------+---------+
| Id   | Name | Address |
+------+------+---------+
| 1    | John | US      |
| 2    | Bob  | UK      |
+------+------+---------+

শুধু মিলে যাওয়া সারি ফেরত দেয় (Inner join-এর মতো)। পারফরম্যান্স টিউনিং-এ জয়েন অর্ডার ফিক্স করতে এটি ব্যবহার করা হয়।

  1. MySQL-এ কমা-বिभক্ত স্ট্রিং IN() ক্লজে ব্যবহার করা

  2. MySQL-এ @ চিহ্ন ব্যবহার করে ইউজার-ডিফাইনড ভেরিয়েবল ডিক্লেয়ার ও ব্যবহার

  3. MySQL-এ WITH ROLLUP সঠিকভাবে ব্যবহার করা

  4. MySQL에서 CONTAINS() 대신 CONCAT과 CURDATE로 연도 포함 여부 검사하기