bit string
Gần đây tôi đã tìm hiểu về kiểu dữ liệu và tôi khá tò mò về:
Ở dưới cùng của trang tài liệu này có câu:
... cộng thêm 5 hoặc 8 byte phí tùy thuộc vào độ dài của chuỗi
Các chuỗi bit được xử lý như thế nào trong các ngôn ngữ khác như PHP, Java, C #, C ++, v.v., thông qua các trình điều khiển như Npgsql, ODBC, v.v.
Đối với câu hỏi số 1, sử dụng smallint hoặc bigint sẽ hiệu quả hơn về lưu trữ và có lẽ sẽ mang lại hiệu suất tăng do các số nguyên được hỗ trợ ở mọi nơi. Hầu hết các ngôn ngữ lập trình xử lý các hoạt động bit trên số nguyên một cách dễ dàng. Nếu đó là trường hợp, điểm giới thiệu kiểu dữ liệu chuỗi bit là gì? Có phải chỉ dành cho những trường hợp cần một lượng lớn mặt nạ bit? Có thể lập chỉ mục trường bit? Tôi tò mò hơn về cách lập chỉ mục trường bit được thực hiện trong PostgreSQL.
Đối với # 2, tôi bối rối, nhiều hơn là tò mò. Ví dụ: điều gì sẽ xảy ra nếu tôi lưu trữ mặt nạ bit ngày trong tuần trong trường bit (7), một bit cho một ngày, với bit thấp nhất đại diện cho thứ Hai. Sau đó, tôi truy vấn giá trị trong PHP và C ++. Tôi sẽ nhận được gì? Tài liệu nói rằng tôi sẽ có một chuỗi bit, tuy nhiên chuỗi bit không phải là thứ tôi có thể sử dụng trực tiếp - như với số nguyên. Vậy thì trong trường hợp này, tôi có nên từ bỏ trường bit không?
Bất cứ ai có thể giải thích tại sao và khi tôi nên sử dụng bit hoặc bit khác nhau?