Não há nada de errado em salvar todo o histórico no banco de dados, eles estão preparados para esse tipo de tarefa.
Na verdade, você pode encontrar aqui no Stack Overflow um link para um esquema de exemplo para um bate-papo:exemplo
Se você ainda está preocupado com o tamanho, você pode aplicar algumas otimizações para agrupar mensagens, como adicionar um buffer ao seu aplicativo que você só envia depois de algum tempo (como 1 minuto ou mais); dessa forma você evitaria ter apenas 1 linha de mensagens