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

MySQL-এ কার্ডিন্যালিটি (Cardinality) কী?

কার্ডিন্যালিটি: কলাম মানগুলোর অনন্যতার মাপ

MySQL-এ Cardinality বলতে একটি কলামে অনন্য (unique) মানের সংখ্যাকে বোঝায়। এটি কোয়েরি অপ্টিমাইজারকে ইনডেক্স ব্যবহার করার সিদ্ধান্ত নিতে সাহায্য করে।

দুই ধরনের কার্ডিন্যালিটি

  • High Cardinality: কলামের প্রায় সব মান অনন্য (যেমন Primary Key, Email, UUID)। সার্চ/সর্টিং দ্রুত হয়।
  • Low Cardinality: কলামে قليلًا অনন্য মান রয়েছে (যেমন Gender, Boolean, Status)। ইন্ডেক্স কম কার্যকর হয়।

High Cardinality উদাহরণ (UNIQUE কনস্ট্রেইন্ট)

mysql> CREATE TABLE UniqueDemo1 (id INT, name VARCHAR(100), UNIQUE(id,name));
mysql> INSERT INTO UniqueDemo1 VALUES (1,'John');
mysql> INSERT INTO UniqueDemo1 VALUES (1,'John'); -- ERROR 1062: Duplicate entry

Low Cardinality উদাহরণ (কনস্ট্রেইন্ট নেই)

mysql> CREATE TABLE LowCardinality (id INT, name VARCHAR(100));
mysql> INSERT INTO LowCardinality VALUES (1,'John'), (1,'John'); -- সফল
mysql> SELECT * FROM LowCardinality;
+------+------+
| id   | name |
+------+------+
| 1    | John |
| 1    | John |
+------+------+

মহত্ব: হাই কার্ডিন্যালিটি কলামে ইনডেক্স দিলে কোয়েরি পারফরম্যান্স বেশি উন্নত হয়।

  1. MySQL-এ IN অপারেটর দিয়ে মানগুলির তালিকা কোয়েরি করা

  2. MySQL-এ SELECT TRUE কী এবং কীভাবে কাজ করে?

  3. MySQL-এ BETWEEN ক্লজ না ব্যবহার করে AND অপারেটর দিয়ে রেঞ্জ কোয়ারি করা

  4. MySQL에서 ORDER BY RAND()와 LIMIT으로 랜덤 2개 행 선택하기