最近、ビット文字列データ型をいじっています。そして、次のことに非常に興味があります。
... さらに、文字列の長さに応じて 5 または 8 バイトのオーバーヘッド @このドキュメント ページの下部
ドライバー (Npgsql、ODBC など) を介して他の言語 (PHP、Java、C#、C++ など) でどのように処理されますか?
#1 については、integer(smallint/bigint) を使用すると、ストレージ効率が大幅に向上するか、整数がどこでもサポートされているため、パフォーマンスが向上する可能性さえあるようです。プログラミング言語では、整数でビット操作を実行しても問題はほとんどありません。では、データ型を導入するポイントは何ですか? 大量のビットマスクが必要な場合のみ? おそらくビットフィールドのインデックス付け?Pg でビット フィールドのインデックス付けがどのように行われるかについてもっと興味があります。
#2については、単なる好奇心以上に混乱しています。簡単な例として、曜日のビット マスクを bit(7) フィールドに格納し、1 日 1 ビット、月曜日を最低値として格納するとどうなるでしょうか。次に、PHP と C++ で値を照会します。私は何を手に入れますか?文書によると、私は少し文字列を持っていると言っています。しかし、ビット文字列は直接使用できるものではありません - 整数の場合と同様です。では、この場合、ビットフィールドをあきらめるべきでしょうか?
なぜ/いつビットまたはビットの変化を使用する必要があるのか 、誰かが少し詳しく説明できますか?
[編集]---------------- ここで関連する投稿を見つけました
とはいえ、まだ頭の中が整理できていません。上記の投稿 (およびそのコメント) で述べたように、bit(n) とビット可変の目的を明確に理解しています。しかし、プログラミング言語での地位はどうなっているのか疑問に思っています。私が知る限り、これら 2 つのデータ型は PHP では文字列として表されます。これは私が期待していた最小のものです。
そのような列が最もよく使用されるというシナリオを誰かが与えることができますか?