Saya telah belajar tentang bit string
tipe data belakangan ini, dan saya cukup ingin tahu tentang:
Di bagian bawah halaman dokumen ini ada kalimat:
... ditambah 5 atau 8 byte overhead tergantung pada panjang string
Bagaimana bit string ditangani dalam bahasa lain seperti PHP, Java, C #, C ++, dll., Melalui driver seperti Npgsql, ODBC, dll.
Untuk pertanyaan # 1, menggunakan smallint atau bigint akan jauh lebih efisien penyimpanan, dan mungkin akan menawarkan peningkatan kinerja karena bilangan bulat didukung di mana-mana. Sebagian besar bahasa pemrograman menangani operasi bit pada bilangan bulat dengan mudah. Jika itu masalahnya, apa gunanya memperkenalkan tipe data bit-string? Apakah ini Hanya untuk kasus yang membutuhkan sedikit topeng? Pengindeksan bidang bit mungkin? Saya lebih ingin tahu tentang bagaimana pengindeksan bidang bit dilakukan di PostgreSQL.
Untuk # 2, saya bingung, lebih dari sekadar ingin tahu. Sebagai contoh, bagaimana jika saya menyimpan topeng bit hari minggu di bidang bit (7), satu bit untuk sehari, dengan bit terendah mewakili hari Senin. Lalu saya meminta nilai dalam PHP dan C ++. Apa yang akan saya dapatkan? Dokumentasi mengatakan saya akan memiliki string bit, namun string bit bukanlah sesuatu yang dapat saya gunakan secara langsung - seperti halnya integer. Maka dalam hal ini, haruskah saya menyerah pada bidang bit?
Adakah yang bisa menjelaskan mengapa dan kapan saya harus menggunakan sedikit atau sedikit variasi?