Cardinality (độ cơ số) là mức độ duy nhất của giá trị dữ liệu trong cột. Ảnh hưởng đến khả năng tìm kiếm, gom cụm, sắp xếp dữ liệu.
2 loại Cardinality
- Low Cardinality (Thấp): Tất cả giá trị trong cột giống nhau.
- High Cardinality (Cao): Tất cả giá trị trong cột đều duy nhất (unique).
High cardinality thường dùng khi đặt ràng buộc UNIQUE để ngăn chặn trùng lặp.
Ví dụ High Cardinality
mysql> CREATE TABLE UniqueDemo1 (
-> id INT,
-> name VARCHAR(100),
-> UNIQUE(id, name)
-> );
Query OK, 0 rows affected (0.81 sec)
mysql> INSERT INTO UniqueDemo1 VALUES(1,'John'); Query OK, 1 row affected (0.18 sec) mysql> INSERT INTO UniqueDemo1 VALUES(1,'John'); ERROR 1062 (23000): Duplicate entry '1-John' for key 'id'
mysql> SELECT * FROM UniqueDemo1;
+------+------+ | id | name | +------+------+ | 1 | John | +------+------+ 1 row in set (0.00 sec)
Ví dụ Low Cardinality
mysql> CREATE TABLE LowCardinality (
-> id INT,
-> name VARCHAR(100)
-> );
Query OK, 0 rows affected (0.71 sec)
mysql> INSERT INTO LowCardinality VALUES(1,'John'); Query OK, 1 row affected (0.19 sec) mysql> INSERT INTO LowCardinality VALUES(1,'John'); Query OK, 1 row affected (0.14 sec)
mysql> SELECT * FROM LowCardinality;
+------+------+ | id | name | +------+------+ | 1 | John | | 1 | John | +------+------+ 2 rows in set (0.00 sec)
Cho phép trùng lặp vì không có ràng buộc UNIQUE.