Usar 1 e 0 é uma maneira muito sensata e portátil de representar valores booleanos. Qualquer diferença de tamanho entre e int e um tipo booleano nativo fará pouca ou nenhuma diferença no desempenho do seu aplicativo ou no tamanho em KB do seu banco de dados.