我最近一直在学习bit string
数据类型,对此我很好奇:
在此文档页面的底部有一句话:
...加上5或8个字节的开销,具体取决于字符串的长度
如何通过Npgsql,ODBC等驱动程序以其他语言(例如PHP,Java,C#,C ++等)处理位字符串。
对于问题1,使用smallint或bigint会提高存储效率,并且可能会提高性能,因为到处都支持整数。大多数编程语言都可以轻松地对整数进行位运算。如果是这样,引入位串数据类型有什么意义?是否仅适用于需要大量位掩码的情况?位字段索引可能吗?我对PostgreSQL中如何完成位字段索引感到好奇。
对于#2,我感到困惑,不仅仅是好奇。例如,如果我将星期几位掩码存储在bit(7)字段中,一天一次,最低位代表星期一,该怎么办。然后,我查询PHP和C ++中的值。我会得到什么?文档说我会有一个位字符串,但是位字符串不是我可以直接使用的-与整数一样。那么在这种情况下,我应该放弃位字段吗?
任何人都可以详细说明为什么以及何时应该使用逐点变化吗?