BSON dirancang agar efisien dalam ruang, tetapi dalam beberapa kasus tidak jauh lebih efisien daripada JSON. Dalam beberapa kasus BSON bahkan menggunakan lebih banyak ruang daripada JSON. Alasan untuk ini adalah tujuan desain BSON yang lain: traversability. BSON menambahkan beberapa informasi "ekstra" ke dokumen, seperti panjang string dan sub-objek. Ini membuat traversal lebih cepat.
BSON juga dirancang agar cepat dikodekan dan didekodekan. Misalnya, bilangan bulat disimpan sebagai 32 (atau 64) bilangan bulat, sehingga tidak perlu diuraikan ke dan dari teks. Ini menggunakan lebih banyak ruang daripada JSON untuk bilangan bulat kecil, tetapi jauh lebih cepat untuk diuraikan.
Selain kekompakan, BSON menambahkan tipe data tambahan yang tidak tersedia di JSON, terutama tipe data BinData dan Date .