Nếu nó tùy thuộc vào tôi ...
Bạn cần đáp ứng các yêu cầu của cơ sở dữ liệu và các ứng dụng của bạn.
Việc thêm một số nguyên tự động hoặc cột id dài vào mỗi bảng để đóng vai trò là khóa chính đảm nhiệm các yêu cầu cơ sở dữ liệu.
Sau đó, bạn sẽ thêm ít nhất một chỉ mục duy nhất khác vào bảng để ứng dụng của bạn sử dụng. Đây sẽ là chỉ mục trên worker_id, hoặc account_id hoặc customer_id, v.v. Nếu có thể, chỉ mục này không phải là một chỉ mục tổng hợp.
Tôi sẽ ưu tiên các chỉ số trên một số lĩnh vực riêng lẻ trên các chỉ số tổng hợp. Cơ sở dữ liệu sẽ sử dụng các chỉ mục trường đơn bất cứ khi nào mệnh đề where bao gồm các trường đó, nhưng nó sẽ chỉ sử dụng hỗn hợp khi bạn cung cấp các trường theo đúng thứ tự - nghĩa là nó không thể sử dụng trường thứ hai trong chỉ mục tổng hợp trừ khi bạn cung cấp cả thứ nhất và thứ hai trong mệnh đề where của bạn.
Tôi là tất cả để sử dụng các chỉ số loại tính toán hoặc Hàm - và sẽ khuyên bạn nên sử dụng chúng trên các chỉ mục tổng hợp. Nó làm cho nó rất dễ sử dụng chỉ mục hàm bằng cách sử dụng cùng hàm trong mệnh đề where của bạn.
Điều này quan tâm đến các yêu cầu ứng dụng của bạn.
Rất có khả năng các chỉ số không chính khác thực sự là ánh xạ của giá trị khóa chỉ mục đó thành giá trị khóa chính, không phải là rowid (). Điều này cho phép các hoạt động sắp xếp vật lý và xóa xảy ra mà không phải tạo lại các chỉ số này.