Recentemente ho imparato a conoscere il bit string
tipo di dati e sono piuttosto curioso di sapere:
Nella parte inferiore di questa pagina del documento c'è la frase:
... più 5 o 8 byte di sovraccarico a seconda della lunghezza della stringa
Come vengono gestite le stringhe di bit in altre lingue come PHP, Java, C #, C ++, ecc., Tramite driver come Npgsql, ODBC, ecc.
Per la domanda n. 1, l'uso di smallint o bigint sarà molto più efficiente in termini di archiviazione e potrebbe offrire un miglioramento delle prestazioni poiché gli interi sono supportati ovunque. La maggior parte dei linguaggi di programmazione gestisce con facilità operazioni a bit su numeri interi. In tal caso, qual è lo scopo dell'introduzione del tipo di dati stringa di bit? È solo per i casi che richiedono una grande quantità di maschere di bit? Indicizzazione dei campi bit forse? Sono più curioso di sapere come viene eseguita l'indicizzazione dei campi in PostgreSQL.
Per # 2, sono confuso, più che curioso. Ad esempio, cosa succede se memorizzo le maschere di bit del giorno della settimana in un campo di bit (7), un bit per un giorno, con il bit più basso che rappresenta il lunedì. Quindi chiedo il valore in PHP e C ++. Cosa riceverò? La documentazione dice che avrò una stringa di bit, tuttavia una stringa di bit non è qualcosa che posso usare direttamente - come con i numeri interi. Quindi, in questo caso, dovrei rinunciare al campo bit?
Qualcuno può spiegare perché e quando dovrei usare bit o bit variando?