Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Cardinality trong MySQL là gì?


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.