He estado aprendiendo sobre el bit string
tipo de datos últimamente, y tengo mucha curiosidad sobre:
Al final de esta página del documento está la oración:
... más 5 u 8 bytes de sobrecarga dependiendo de la longitud de la cadena
Cómo se manejan las cadenas de bits en otros lenguajes como PHP, Java, C #, C ++, etc., a través de controladores como Npgsql, ODBC, etc.
Para la pregunta n. ° 1, el uso de smallint o bigint será mucho más eficiente en el almacenamiento y tal vez ofrezca una ganancia de rendimiento ya que los enteros son compatibles en todas partes. La mayoría de los lenguajes de programación manejan operaciones de bits en enteros con facilidad. Si ese es el caso, ¿cuál es el punto de introducir el tipo de datos de cadena de bits? ¿Es solo para casos que necesitan una gran cantidad de máscaras de bits? ¿Quizás la indexación de campo de bits? Tengo más curiosidad acerca de cómo se realiza la indexación de campo de bits en PostgreSQL.
Para el # 2, estoy confundido, más que curioso. Por ejemplo, ¿qué pasa si almaceno máscaras de bits de día de la semana en un campo de bit (7), un bit por día, con el bit más bajo que representa el lunes. Luego consulto el valor en PHP y C ++. ¿Que voy a obtener? La documentación dice que tendré una cadena de bits, sin embargo, una cadena de bits no es algo que pueda usar directamente, como con los enteros. Entonces, en este caso, ¿debería renunciar al campo de bits?
¿Alguien puede explicar por qué y cuándo debo usar bit o bit variable?