Cardinality trong mysql là một ước tính và mysql dựa trên ước tính của nó dựa trên thống kê sử dụng bảng:
Bạn có thể đọc thêm về số liệu thống kê được thu thập cho các công cụ bảng myisam và innodb trong tài liệu của mysql và innodb cũng như cách định cấu hình chúng:
Tất cả số liệu thống kê được lưu trữ trong bảng THỐNG KÊ trong information_schema.
Các chỉ mục, số lượng ước tính gần với bản số chính xác của chúng (số lượng giá trị khác biệt trong trường) đã được tạo cách đây lâu hơn, do đó mysql thu thập nhiều thống kê hơn cho chúng và ước tính của nó chính xác hơn. Nếu bạn chạy analyse table
trên bảng cụ thể này, có lẽ các cấp số của các chỉ mục trùng lặp sẽ gần nhau hơn rất nhiều so với bây giờ.
Câu hỏi lớn là, tại sao bạn lại có các chỉ mục trùng lặp?