Tinyint MySQL là gì

Không gian trống cho sai

Dù lựa chọn của bạn là gì, bạn có thể đặt thành NULL thay vì 0 và nó sẽ chiếm không có thêm dung lượng [vì cơ sở dữ liệu hầu như luôn có cờ NULL cho mọi trường của mỗi hàng, chỉ cần ngồi ở đó; thêm thông tin ở đâ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 nữa!

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; sử dụng BIT sẽ chỉ tiết kiệm không gian nếu một bảng có nhiều cột như vậy, vì nó sử dụng một byte cho 8 trường [so với TINYINT sử dụng một byte cho mỗi trường].

TINYINT có lợi thế là cho phép bạn tùy chỉnh 8 giá trị bitmask mà không phải lo lắng về việc quản lý một loạt các cột bổ sung và tìm kiếm nhanh hơn về mặt lý thuyết [một trường số nguyên so với một số trường bit]. Nhưng có một số nhược điểm như thứ tự chậm hơn, công cụ lập chỉ mục chéo ưa thích 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 ý bit nào đã làm những gì trong bitmasks.

Trong mọi trường hợp, tránh cám dỗ sử dụng các trường TEXT để lưu trữ booleans hoặc bộ của 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 sơ đồ đặ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.

Video liên quan

Chủ Đề