J'ai appris bit string
récemment sur le type de données et je suis assez curieux de savoir:
Au bas de cette page doc, il y a la phrase:
... plus 5 ou 8 octets de surcharge en fonction de la longueur de la chaîne
Comment les chaînes de bits sont-elles gérées dans d'autres langages tels que PHP, Java, C #, C ++, etc., via des pilotes comme Npgsql, ODBC, etc.
Pour la question n ° 1, l'utilisation de smallint ou bigint sera beaucoup plus efficace en termes de stockage et offrirait peut-être un gain de performances puisque les entiers sont pris en charge partout. La plupart des langages de programmation gèrent facilement les opérations binaires sur les entiers. Si tel est le cas, à quoi bon introduire le type de données chaîne de bits? Est-ce uniquement pour les cas qui nécessitent une grande quantité de masques de bits? L'indexation des champs de bits peut-être? Je suis plus curieux de savoir comment l'indexation des champs binaires est effectuée dans PostgreSQL.
Pour le # 2, je suis confus, plus que curieux. Par exemple, que se passe-t-il si je stocke des masques de bits de jour de la semaine dans un champ de bit (7), un bit pour une journée, le bit le plus bas représentant le lundi. Ensuite, je demande la valeur en PHP et C ++. Que vais-je recevoir? La documentation indique que j'aurai une chaîne de bits, mais une chaîne de bits n'est pas quelque chose que je peux utiliser directement - comme avec les entiers. Alors dans ce cas, dois-je abandonner le champ de bits?
Quelqu'un peut-il expliquer pourquoi et quand utiliser un bit ou un bit variable?