Non c'è niente di sbagliato nel salvare l'intera cronologia nel database, sono preparati per quel tipo di attività.
In realtà puoi trovare qui in Stack Overflow un collegamento a uno schema di esempio per una chat:esempio
Se sei ancora preoccupato per le dimensioni, puoi applicare alcune ottimizzazioni ai messaggi di gruppo, come aggiungere un buffer alla tua applicazione che spingi solo dopo un po' di tempo (come 1 minuto circa); in questo modo eviterai di avere solo 1 riga di messaggi