а если не допускать значения Null, и по умолчанию ставить 0
то проверки IFNULL не нужны, т.к. там Null не будет
вместо строковых значений ('Daily Earning', 'PayOut', 'Hold', 'UnHold', 'Chargeback', 'Bonus') поставить цифры!
зачем проверять сами строки, работайте по возможностью с числами - это немного должно ускорить работу и вес базы
да вариантов куча на оптимизации
от реконструкции самой базы, до NOSQL