Mặc dù tôi hiểu rằng nó rất thuận lợi để có chỉ mục trên một cột duy nhất - để kiểm tra va chạm giá trị một cách dễ dàng và hiệu quả, tôi nghĩ rằng nên lập trình viên để xác định liệu cột trường duy nhất có chỉ mục hay không không, liên quan đến tối ưu hóa kích thước và tốc độ.MySQL: Trường có cột 'duy nhất' ngụ ý một chỉ mục không và nếu có thì tại sao?
Theo tôi hiểu, MySQL tự động lập chỉ mục cột bảng được chỉ định là duy nhất. Có phải vậy không?
Có bất kỳ lý do nào MySQL dường như không thể có các cột duy nhất KHÔNG CÓ chỉ mục? Có, mọi giá trị chèn/cập nhật sẽ là hoạt động O (number_of_rows) mà không có một, nhưng như tôi đã nói, không nên lập trình viên bị đánh thuế với quyết định?
Rất tò mò!
Thực tế, một lý do để sử dụng DBMS là duy trì tính toàn vẹn của dữ liệu. –
Tính toàn vẹn dữ liệu và lập chỉ mục dữ liệu, mặc dù có liên quan, là hai khái niệm trực giao, phải không? – amn
@amn, vâng, tôi tin là vậy. Và hầu hết thời gian, giải pháp cho tính toàn vẹn dữ liệu không quá thanh lịch như trường hợp cụ thể này. Nhiều lần nó đi xuống để có thể chất kiểm tra xem dữ liệu được cho là có thực sự ở đó. Tất nhiên điều này cũng phụ thuộc vào RDMS, hỗ trợ cho các khóa ngoại, các ràng buộc chính, v.v. –