Cột deleted_at
không phải là một ứng cử viên chỉ số tốt. Tôi sẽ cố gắng giải thích rõ hơn so với nhận xét:các chỉ mục chỉ hữu ích khi bản số của chúng tương đối cao. Cardinality là một số mô tả tính duy nhất của chỉ mục trong tập dữ liệu. Điều đó có nghĩa là tổng số bản ghi chia cho tổng số bản ghi duy nhất.
Ví dụ, cấp số của khóa chính là 1. Mọi bản ghi đều chứa giá trị duy nhất cho khóa chính. 1 cũng là con số cao nhất. Bạn có thể coi đây là "100%".
Tuy nhiên, một cột như delete_at không có giá trị như vậy. Những gì Laravel làm với Delete_at là kiểm tra xem nó có hay không null. Điều đó có nghĩa là nó có hai giá trị có thể. Các cột chứa hai giá trị có số lượng cực kỳ thấp, sẽ giảm khi số lượng bản ghi tăng lên.
Bạn có thể lập chỉ mục một cột như vậy, nhưng nó sẽ không giúp ích được gì. Điều gì sẽ xảy ra là nó có thể làm mọi thứ chậm lại và chiếm dung lượng.
TL; DR:không, bạn không phải lập chỉ mục cho cột đó, chỉ mục sẽ không có tác động có lợi đến hiệu suất.