This is the way, if the data changes drastically. If you can determine that the differences are small and somewhat well behaved to have a reasonable small diff, you could also compute the diff, and then emit the rowsInserted/rowsRemoved signals to indicate all changes individually. But that's more or less theoretical.