tôi nghĩ rằng nếu lĩnh vực boolean của bạn là như vậy mà bạn sẽ được đề cập đến chúng trong nhiều trường hợp, nó sẽ làm cho tinh thần để có một bảng riêng biệt, ví dụ DeletedPages, hoặc SpecialPages, sẽ có nhiều lĩnh vực kiểu boolean, như is_deleted
, is_hidden
, is_really_deleted
, requires_higher_user
vv, và thì bạn sẽ tham gia để có được chúng.
Thông thường, kích thước của bảng này sẽ nhỏ hơn và bạn sẽ nhận được một số lợi thế bằng cách tham gia, đặc biệt là liên quan đến khả năng đọc và khả năng bảo trì mã. Và đối với loại truy vấn này:
select all pages where is_deleted = 1
Sẽ nhanh hơn nếu nó được triển khai như thế này:
select all pages where pages
inner join DeletedPages on page.id=deleted_pages.page_id
Tôi nghĩ rằng tôi đã đọc nó ở đâu đó về cơ sở dữ liệu mysql rằng bạn cần một trường ít nhất phải có số lượng là 3 để làm cho việc lập chỉ mục hoạt động trên trường đó, nhưng hãy xác nhận điều này.