Không gian cho sai
Dù lựa chọn của bạn là gì, bạn có thể đặt thành NULL
thay vì 0
nó sẽ không chiếm thêm dung lượng (vì cơ sở dữ liệu hầu như luôn có NULL
cờ cho mọi trường của mọi hàng, bạn chỉ cần ngồi ở đó; thêm thông tin tại đây ). Nếu bạn cũng đảm bảo giá trị mặc định / rất có thể là false
, bạn sẽ tiết kiệm được nhiều dung lượng hơn!
Một số không gian cho sự thật
Giá trị để biểu diễn true
yêu cầu không gian được xác định bởi loại trường; việc sử dụng BIT
sẽ chỉ tiết kiệm dung lượng nếu một bảng có nhiều cột như vậy, vì nó sử dụng một byte trên 8 trường (so với TINYINT
sử dụng một byte trên mỗi trường).
TINYINT
có ưu điểm là cho phép bạn tùy chỉnh mặt nạ bit 8 giá trị mà không cần lo lắng về việc quản lý nhiều cột thừa và tìm kiếm về mặt lý thuyết nhanh hơn (một trường số nguyên duy nhất so với một số trường bit). Nhưng có một số nhược điểm như đặt hàng chậm hơn, lập chỉ mục chéo lạ mắt và thiếu tên trường. Mà với tôi, là mất mát lớn nhất; cơ sở dữ liệu của bạn sẽ yêu cầu tài liệu bên ngoài để lưu ý các bit nào đã làm những gì trong các mặt nạ bit.
Trong mọi trường hợp, hãy tránh sự cám dỗ sử dụng TEXT
các trường để lưu trữ boolean hoặc tập hợp chúng. Tìm kiếm thông qua văn bản là công việc nhiều hơn cho máy chủ và các lược đồ đặt tên tùy ý như "bật, tắt, tắt" có thể ảnh hưởng đến khả năng tương tác.