Такую тему уже поднимали. Ваша первая модель похожа на ТИП 4.
Зачем поле param1_is_changed? Нужно определять какое именно поле изменилось, они меняются не группой?
Логики во втором методе, пока, не вижу.
Думаю, можно будет спроектировать так, что бы при выборке разницы а производительности не было.